Vengo haciendo mucho de XSLT y jQuery y pensamiento que comparto algunos fragmentos que otros pueden resultar útiles en el futuro.
Ejemplo 1: Emiten simple JavaScript / jQuery en XSLT:
<XSL:Partido de plantilla = "algo" XML:Space = "preserve">
<!– En blanco el campo oculto de filtros amigable de consulta –>
<tipo de secuencia de comandos = "text/javascript">
$(documento).listo(función(){
$("#QueryFriendlyFilters").Val("vacía");
});
</secuencia de comandos></XSL:plantilla>
Que bit emite algunos JavaScript que espera de la página finalizar la carga (debido a la $(documento).listo(…)) y, a continuación, establece el valor de un campo oculto llamado QueryFriendlyFilters el valor literal "vacía".
Ejemplo 2: Uso <XSL:Si> para comprobar la "mayor que", "menor que", etc..
<XSL:Partido de plantilla = "algo" XML:Space = "preserve">
<div id = "fdcAllFilters">
<XSL:Si test="@Count>0">
<span class = "fdcFilterLabel">Filtros actuales:</abarcan>
</XSL:Si><!– más cosas sucede aquí. –>
</XSL:plantilla>
El fragmento de código anterior comprueba si un atributo denominado "Contar" del elemento "algo" es mayor que cero. El XML detrás de todo esto sería algo así como:”
<algo Count = "5" />
Ejemplo 3: Recorrer en iteración todos los elementos, intercalando llamadas jQuery.
<!– Recorrer en iteración todos los filtros y mostrar la correcta enlaces. –>
<XSL:for each select = "UserFilter"><una clase = "FilterHref" href = "javascript:mySubmitPage('RemoveUserFilter','{@ ID}’)">[X]</un>
<span class = "fdcFilterLabel"><XSL:valor de select="@FilterValue"/></abarcan>
<tipo de secuencia de comandos = "text/javascript">$(documento).listo(función(){
<XSL:texto><![CDATA[$("#QueryFriendlyFilters").Val( ($("#QueryFriendlyFilters").Val() + " ]]></XSL:texto>\"<XSL:valor de select="@FilterValue"/>\"<XSL:texto><![CDATA["));]]></XSL:texto>
});</secuencia de comandos>
</XSL:para cada>
El fragmento de código anterior es el más complejo y puede haber formas más fácil de hacerlo.
El XML detrás de todo esto más o menos este aspecto:
<UserFilter ID = "123" FilterValue = "xyzzy" />
Este fragmento es iterar a través de <UserFilter> nodos.
Primero emite un ancla de etiqueta que cuando hace clic en invoca una función de JavaScript que ya está en la página, "mySubmitPage" y pasa el valor de un atributo la <UserFilter> nodo denominado "ID".
A continuación, emite algunos jQuery que espera para que cargar la página. Que jQuery actualiza un campo oculto denominado "QueryFriendlyFilters" agregando el valor del atributo FilterValue. Nota todos los locos <XSL:texto> y <![CDATA[ … ]]> cosas.
Eso es todo, esperanza de ayuda!
</final>
Sígueme en Twitter en http://www.twitter.com/pagalvin
¿Puedo utilizar este enfoque para filtrar múltiples lista webparts en SharePoint mediante un XSLT?
Hola, lo siento yo nunca respondió a esto. En este punto es antigua y entonces no lo haré. Espero que te diste cuenta de lo que estaba intentando hacer :).