J'ai fait beaucoup de XSLT et jQuery et pensée que serait partager quelques extraits que d'autres peuvent trouver utiles dans l'avenir.
Exemple 1: Émettent JavaScript simple / jQuery dans XSLT:
<XSL:match de modèle « quelque chose =" XML:espace = « sauvegarde »>
<!– Vide dans le champ masqué de requête filtres amical –>
<script type = « text/javascript »>
$(document).prêt(fonction(){
$(« #QueryFriendlyFilters »).Val(« vide »);
});
</script></XSL:modèle>
Que le bit émet quelques JavaScript qui attend pour la page à la fin de chargement (en raison de la $(document).prêt(…)) et puis définit la valeur d'un champ masqué nommé QueryFriendlyFilters dans la valeur littérale « vide ».
Exemple 2: Utilisation <XSL:Si> pour vérifier la « supérieur à », « moins de », etc..
<XSL:match de modèle « quelque chose =" XML:espace = « sauvegarde »>
<div id = « fdcAllFilters »>
<XSL:si test="@Count>0">
<span class = « fdcFilterLabel »>Filtres actifs:</travée>
</XSL:Si><!– plus de choses se passe ici. –>
</XSL:modèle>
L'extrait de code ci-dessus vérifie si un attribut nommé « Comte » de l'élément « quelque chose » est supérieur à zéro. Le code XML derrière ce serait quelque chose comme:”
<quelque chose de Count = « 5 » />
Exemple 3: Parcourir tous les éléments, disséminer les appels jQuery.
<!– Parcourir tous les filtres et afficher le bon Liens. –>
<XSL:pour chaque select = « UserFilter »><une classe = FilterHref »" href = "javascript:mySubmitPage(« RemoveUserFilter »,'{@ ID}’)">[X]</un>
<span class = « fdcFilterLabel »><XSL:valeur de select="@FilterValue"/></travée>
<script type = « text/javascript »>$(document).prêt(fonction(){
<XSL:texte><![CDATA[$(« #QueryFriendlyFilters »).Val( ($(« #QueryFriendlyFilters »).Val() + " ]]></XSL:texte>\"<XSL:valeur de select="@FilterValue"/>\"<XSL:texte><![CDATA["));]]></XSL:texte>
});</script>
</XSL:pour chaque>
L'extrait de code ci-dessus est le plus complexe et il peut y avoir des moyens plus faciles de le faire.
Le XML derrière tout cela ressemble grossièrement à ce:
<UserFilter ID = « 123 » FilterValue = « xyzzy » />
Cet extrait est une itération à travers <UserFilter> nœuds.
Elle émet d'abord une ancre qui balise lorsque l'utilisateur clique sur invoque une fonction JavaScript qui est déjà sur la page, « mySubmitPage » et passe la valeur d'un attribut le <UserFilter> nœud nommé « ID ».
Il émet ensuite certains jQuery qui attend pour la page de chargement. Que jQuery met à jour un champ masqué nommé « QueryFriendlyFilters » en ajoutant la valeur de l'attribut FilterValue. Remarque tous le fou <XSL:texte> et <![CDATA[ … ]]> Stuff.
C'est tout, espérons que cela aide!
</fin>
Me suivre sur Twitter à http://www.twitter.com/pagalvin
Puis-je utiliser cette approche pour filtrer plusieurs webparts de liste dans SharePoint via un XSLT?
Salut, Désolé j'ai jamais répondu à cette. Elle est ancienne à ce stade et donc je n'essaierai pas. J'espère que vous compris ce que vous tentiez de faire :).