Teño benvida a facer unha chea de XSLT e jQuery e pensei en compartir algúns tramos que os outros poden ser útiles no futuro.
Exemplo 1: Emit JavaScript simple / jQuery en XSLT:
<XSL:template match="something" xml:space = "preserve">
<!– En branco a filtros agradable campo oculto consulta –>
<script type="text/javascript">
$(documento).preparado(función(){
$("#QueryFriendlyFilters").val("empty");
});
</guión></XSL:modelo>
Este bit emite algún JavaScript que agarda a páxina para completar a carga (por mor da $(documento).preparado(...)) e, a continuación, define o valor dun campo oculto chamado QueryFriendlyFilters ao valor literal "baleiro".
Exemplo 2: Usar <XSL:se> para comprobar a "maior que", "Less than", etc.
<XSL:template match="something" xml:space = "preserve">
<div id="fdcAllFilters">
<XSL:if test="@Count>0">
<span class="fdcFilterLabel">Filtros actuais:</van>
</XSL:se><!– máis cousas acontece aquí. –>
</XSL:modelo>
O tramo anterior para saber se un atributo chamado "Count" do elemento "algo" é maior que cero. O XML detrás diso sería algo como:"
<algo Count = "5" />
Exemplo 3: Percorrer todos os elementos, intercalando chamadas jQuery.
<!– Percorrer todos os filtros e amosar o correcto Ligazóns. –>
<XSL:for-each select="UserFilter"><a class="FilterHref" href="javascript:mySubmitPage(‘RemoveUserFilter’,'{@ ID}')">[X]</un>
<span class="fdcFilterLabel"><XSL:value-of select="@FilterValue"/></van>
<script type="text/javascript">$(documento).preparado(función(){
<XSL:texto><![CDATA[$("#QueryFriendlyFilters").val( ($("#QueryFriendlyFilters").val() + " ]]></XSL:texto>\"<XSL:value-of select="@FilterValue"/>\"<XSL:texto><![CDATA["));]]></XSL:texto>
});</guión>
</XSL:a-cada>
O tramo anterior é o máis complexo e pode haber formas máis fáciles de facer isto.
O XML detrás desa aparencia máis ou menos así:
<UserFilter ID = "123" FilterValue = "xyzzy" />
Este fragmento é iterado <Filtro de usuario> nodos.
En primeiro lugar, el emite unha marca de referencia que, cando premendo chama unha función JavaScript que xa está na páxina, "MySubmitPage" e pasa o valor dun atributo no <Filtro de usuario> no chamado "ID".
A continuación, el emite algúns jQuery que espera a páxina cargar. Que as actualizacións jQuery un campo oculto chamado "QueryFriendlyFilters", engadindo o valor do atributo FilterValue. Teña en conta todo o tolo <XSL:texto> e <![CDATA[ ... ]]> cousas.
É iso aí, espero que axude!
</final>
Siga-me no Twitter http://www.twitter.com/pagalvin
Can I use this approach to filter multiple list webparts in SharePoint via a XSLT?
Ola, Sentímolo, eu nunca respondeu a esta. It’s ancient at this point and so I won’t try. I hope you figured out what you were trying to do :).