Ik heb gedaan een heleboel van XSLT- en jQuery en dacht dat ik zou delen een paar fragmenten die anderen in de toekomst nuttig kunnen vinden.
Voorbeeld 1: Eenvoudige JavaScript uitstoten / jQuery in XSLT:
<XSL:sjabloon match = "iets" XML:ruimte = "behouden">
<!– Uit de query vriendelijke filters verborgen veld leeg –>
<script type = "text/javascript">
$(document).klaar(functie(){
$("#QueryFriendlyFilters").Val("lege");
});
</script>
</XSL:sjabloon>
Dat beetje stoot sommige JavaScript die op de pagina wacht te laden voltooien (vanwege de $(document).klaar(…)) en vervolgens sets de waarde van een verborgen veld genaamd QueryFriendlyFilters aan de letterlijke waarde "leeg".
Voorbeeld 2: Gebruik <XSL:Als> om te controleren 'groter dan', "minder dan", etc.
<XSL:sjabloon match = "iets" XML:ruimte = "behouden">
<div id = "fdcAllFilters">
<XSL:Als test="@Count>0">
<klasse omspannen = "fdcFilterLabel">Huidige filters:</span>
</XSL:Als>
<!– meer dingen gebeurt hier. –>
</XSL:sjabloon>
Het bovenstaande fragment wordt gecontroleerd als een kenmerk met de naam "Count" van het "iets" element groter dan nul is. De XML achter dit zou iets willen:”
<iets Count = "5" />
Voorbeeld 3: Alle elementen doorlopen, interspersing jQuery oproepen.
<!– Alle filters doorlopen en weer de juiste koppelingen. –>
<XSL:for-each select = "UserFilter">
<een klasse "FilterHref =" href = "javascript:mySubmitPage('RemoveUserFilter','{@ ID}’)">[X]</een>
<klasse omspannen = "fdcFilterLabel"><XSL:waarde-van select="@FilterValue"/></span>
<script type = "text/javascript">
$(document).klaar(functie(){
<XSL:tekst><![CDATA[$("#QueryFriendlyFilters").Val( ($("#QueryFriendlyFilters").Val() + " ]]></XSL:tekst>\"<XSL:waarde-van select="@FilterValue"/>\"<XSL:tekst><![CDATA["));]]></XSL:tekst>
});
</script>
</XSL:for-each>
Het bovenstaande fragment is de meest complexe en kunnen er eenvoudiger manieren om het te doen.
De XML achter dit ziet er ongeveer als volgt:
<UserFilter ID = "123" FilterValue = "xyzzy" />
Dit fragment is sequentieel doorzoeken <UserFilter> knooppunten.
Het eerste stoot een anker tag die, wanneer geklikt roept een JavaScript-functie die is al op de pagina, "mySubmitPage" en geeft de waarde van een kenmerk op de <UserFilter> knooppunt met de naam "ID".
Het straalt dan sommige jQuery die op de pagina wacht te laden. Een verborgen veld met de naam "QueryFriendlyFilters" door de waarde van het kenmerk FilterValue bijgewerkt dat jQuery. Opmerking alle de gekke <XSL:tekst> en <![CDATA[ … ]]> spullen.
Dat is het, hoop dat het helpt!
</einde>
Abonneren op mijn blog.
Volg mij op Twitter op http://www.twitter.com/pagalvin