Pergunta

Eu tenho uma definição de lista personalizada que define alguma visualização.Essas visualizações estão vinculadas a um arquivo xsl personalizado devido a algumas regras de formatação (linha vermelha quando o campo X é igual a Y).

Neste xsl, gostaria de adicionar um link para uma página personalizada com o ID do item.O resultado deve ser: weburl/pages/mypage.aspx?id=123.

Agora tenho algo assim, no final do meu arquivo xsl:

  <td>
    <a href="../Pages/mypage.aspx?MyID={@ID}">
      Show
    </a>
  </td>

Isso está funcionando na página inicial do meu site (que é /pages/home.aspx), mas não funcionará na própria lista por causa do URL relativo.

  1. a abordagem xsl é a maneira correta de definir esse link?
  2. se sim, existe algum token ou maneira semelhante de criar o URL relativo do SPWeb?

obrigado

Foi útil?

Solução

Se você estiver incluindo corretamente principal.xsl no seu modelo, use $ServerRelativeUrl parâmetro global.

Exemplo:

<td>
  <a href="{$ServerRelativeUrl}/Pages/mypage.aspx?MyID={@ID}">
    Show
  </a>
</td>

Referência MSDN para parâmetros globais XSLT disponíveis aqui:

Todos esses parâmetros globais são definidos no principal.xsl arquivo:

C: Arquivos de programas Arquivos Comuns Microsoft Shared Web Server Extensions 14 modelo layouts xsl main.xsl

Licenciado em: CC-BY-SA com atribuição
Não afiliado a sharepoint.stackexchange
scroll top