Jag har gjort mycket av XSLT- och jQuery och trodde jag skulle dela några kodavsnitt som andra kan vara användbara i framtiden.
Exempel 1: Släpper ut enkelt JavaScript / jQuery i XSLT:
<XSL:mallen matchning = "något" XML:mellanslag = "bevara">
<!– Tomt ut frågan vänligt filter dolt fält –>
<skript type = "text/javascript">
$(dokument).redo(funktionen(){
$("#QueryFriendlyFilters").val("Tom");
});
</skript></XSL:mall>
Denna bit avger några JavaScript som väntar på sidan Slutför lastning (på grund av den $(dokument).redo(…)) och sedan anger värdet av ett dolt fält namnet QueryFriendlyFilters teckenvärde "Tom".
Exempel 2: Användning <XSL:om> att kontrollera "större än", "mindre än", m.m..
<XSL:mallen matchning = "något" XML:mellanslag = "bevara">
<div id = "fdcAllFilters">
<XSL:om test="@Count>0">
<span class = "fdcFilterLabel">Aktuella filter:</Spänn>
</XSL:om><!– mer grejer händer här. –>
</XSL:mall>
Ovanstående kodutdrag kontrollerar om ett attribut med namnet "Greve" av elementet "något" är större än noll. XML-koden bakom detta skulle vara ungefär:”
<något Count = "5" />
Exempel 3: Iterera genom alla element, sammanblandningarna jQuery samtal.
<!– Iterera genom alla filter och visa rätt Länkar. –>
<XSL:för varje Välj = "UserFilter"><en klass = "FilterHref" href = "javascript:mySubmitPage("RemoveUserFilter",'{@ ID}’)">[X]</en>
<span class = "fdcFilterLabel"><XSL:värde-av select="@FilterValue"/></Spänn>
<skript type = "text/javascript">$(dokument).redo(funktionen(){
<XSL:texten><![CDATA[$("#QueryFriendlyFilters").val( ($("#QueryFriendlyFilters").val() + " ]]></XSL:texten>\"<XSL:värde-av select="@FilterValue"/>\"<XSL:texten><![CDATA["));]]></XSL:texten>
});</skript>
</XSL:för varje>
Ovanstående kodutdrag är den mest komplicerade och det kan finnas enklare sätt att göra det.
XML-koden bakom detta ser ut ungefär så här:
<UserFilter ID = "123" FilterValue = "xyzzy" />
Detta utdrag iterera genom <UserFilter> noder.
Det första avger en fästpunkt etikett som när du klickar på åberopar en JavaScript-funktion som redan finns på sidan, "mySubmitPage" och skickar värdet av ett attribut på det <UserFilter> noden heter "ID".
Det avger sedan några jQuery som väntar på sidan om du vill läsa in. Att jQuery uppdaterar ett dolt fält med namnet "QueryFriendlyFilters" genom att lägga till värdet för attributet FilterValue. Observera alla crazy <XSL:texten> och <![CDATA[ … ]]> grejer.
Det är det, hoppas det hjälper!
</slutet>
Följ mig på Twitter vid http://www.twitter.com/pagalvin