botão dataform webpart redireciona novo ID após salvar
Pergunta
Tenho dois DataFormWebparts em uma página, um para criar novos objetos e outro para editá-los.A Webpart que os cria possui este botão:
<input type="button" value="Save" name="btnSave0" onclick="javascript: {ddwrt:GenFireServerEvent('__commit;__refresh;__redirect={Page.aspx?SelectedID_x003D__x007B_@ID_x007D_}')}" />
As ações para o botão que defini no Sharepoint Designer 2010 são as seguintes:
- Comprometer-se
- Atualizar
- Navegue até a página (mesma página, mas com o parâmetro SelectedID definido com valor:
',/dsQueryResponse/Rows/Row/@ID,'
A lógica que deve acontecer é:salve o objeto e redirecione para a mesma página, mas com o ID do objeto recém-criado no XsltListviewWebPart.
O que realmente acontece, o redirecionamento funciona apenas para:
https://domain.com/SitePages/Page.aspx?SelectedID=%27,/dsQueryResponse/Rows/Row/@ID,%27
Vejo dois problemas: primeiro, o URL redirecionado parece estar codificado.Segundo, o parâmetro é simplesmente considerado uma string, não considerado um parâmetro real.
Alguém pode dar uma dica sobre o que está acontecendo?
Solução
tente substituir isso:
<input type="button" value="Save" name="btnSave0" onclick="javascript: {ddwrt:GenFireServerEvent('__commit;__refresh;__redirect={Page.aspx?SelectedID_x003D__x007B_@ID_x007D_}')}" />
com
<input type="button" value="Save" name="btnSave0" onclick="javascript: {ddwrt:GenFireServerEvent('__commit;__refresh;__redirect={Page.aspx?SelectedID={@ID}}')}" />
se isso não funcionar, você pode usar substring(@ID,[start-index],[length]) ou substring-after ou substring-before em xslt