Eu tenho feito muita de XSLT e jQuery e pensei que iria partilhar alguns trechos que outros podem ser úteis no futuro.
Exemplo 1: Emit simples do JavaScript / jQuery em XSLT:
<XSL:jogo de modelo = "algo" XML:Space = "preserve">
<!– Espaço em branco fora da consulta amigável filtra campo oculto –>
<script type = "text/javascript">
$(documento).pronto(função(){
$("#QueryFriendlyFilters").Val("vazio");
});
</script>
</XSL:modelo>
Esse bit emite algum JavaScript que aguarda concluir Carregando a página (devido a $(documento).pronto(…)) e, em seguida, define o valor de um campo oculto chamado QueryFriendlyFilters para o valor literal "vazio".
Exemplo 2: Utilização <XSL:se> para verificar a "maior que", "menor que", etc.
<XSL:jogo de modelo = "algo" XML:Space = "preserve">
<div id = "fdcAllFilters">
<XSL:se test="@Count>0">
<span class = "fdcFilterLabel">Filtros atuais:</extensão>
</XSL:se>
<!– mais coisas acontece aqui. –>
</XSL:modelo>
O trecho acima verifica se um atributo chamado "Contar" do elemento "algo" é maior que zero. O XML por trás disto seria algo como:”
<algo Count = "5" />
Exemplo 3: Percorrer todos os elementos, intercalando chamadas de jQuery.
<!– Iterar em todos os filtros e exibir o correto ligações. –>
<XSL:for-each selecione = "UserFilter">
<uma classe = "FilterHref" href = "javascript:mySubmitPage('RemoveUserFilter','{@ ID}’)">[X]</uma>
<span class = "fdcFilterLabel"><XSL:valor de select="@FilterValue"/></extensão>
<script type = "text/javascript">
$(documento).pronto(função(){
<XSL:texto><![CDATA[$("#QueryFriendlyFilters").Val( ($("#QueryFriendlyFilters").Val() + " ]]></XSL:texto>\"<XSL:valor de select="@FilterValue"/>\"<XSL:texto><![CDATA["));]]></XSL:texto>
});
</script>
</XSL:for-each>
O trecho acima é a mais complexa e pode haver maneiras mais fácil de fazê-lo.
O XML por trás disso fica mais ou menos assim:
<UserFilter ID = "123" FilterValue = "xyzzy" />
Este trecho é iterar através de <UserFilter> nós.
Ele primeiro emite uma âncora tag que quando clicado chama uma função JavaScript que já está na página, "mySubmitPage" e passa o valor de um atributo o <UserFilter> nó chamado "ID".
Ele, em seguida, emite algum jQuery que aguarda carregar a página. Esse jQuery atualiza um campo oculto chamado "QueryFriendlyFilters", adicionando o valor do atributo FilterValue. Observe o louco <XSL:texto> and <![CDATA[ … ]]> coisas.
É isso, esperança que aquilo ajuda!
</fim>
Subscreva ao meu blog.
Siga-me no Twitter em http://www.twitter.com/pagalvin