XSLT at jQuery mga halimbawa

Ako ay paggawa ng maraming ng XSLT at jQuery at naisip gusto kong ibahagi ang ilang mga snippet na ang mga iba ay maaaring kapaki-pakinabang sa hinaharap.

Halimbawa 1: Magbuga simpleng JavaScript / jQuery sa XSLT:

<xsl:template match = "ng isang bagay,,en,script type = "text / javascript",,en,"#QueryFriendlyFilters",,en,"Walang laman",,en,div id = "fdcAllFilters",,en,kung test = "@ Count,,en,span class = "fdcFilterLabel",,en,para-sa-bawat pumili = "UserFilter",,en,isang class = "FilterHref,,en,href = "javascript,,en,'RemoveUserFilter',,en,sulit ng mga piling = "@ FilterValue" /,,en" xml:space="preserve">

  <!– Blangko ang ang query friendly na mga filter nakatagong patlang –>
  <script type="text/javascript">
    $(dokumento).nakahanda(tungkulin(){
      $("#QueryFriendlyFilters").Val("empty");
    });
  </script>

</xsl:template>

Na bit emits ilang JavaScript na naghihintay para sa mga pahina upang tapusin ang loading (dahil sa $(dokumento).nakahanda(...)) at pagkatapos ay nagtatakda ng halaga ng isang nakatagong patlang pinangalanan QueryFriendlyFilters na ang literal na halaga na "walang laman".

Halimbawa 2: Gamitin <xsl:kung> check ang "mas higit",  "Mas mababa", at iba pa.

<xsl:template match = "ng isang bagay,,en,script type = "text / javascript",,en,"#QueryFriendlyFilters",,en,"Walang laman",,en,div id = "fdcAllFilters",,en,kung test = "@ Count,,en,span class = "fdcFilterLabel",,en,para-sa-bawat pumili = "UserFilter",,en,isang class = "FilterHref,,en,href = "javascript,,en,'RemoveUserFilter',,en,sulit ng mga piling = "@ FilterValue" /,,en" xml:space="preserve">

  <div id="fdcAllFilters">
 
    <xsl:if test="@Count>0">
      <span class="fdcFilterLabel">Kasalukuyang filter:</maikling panahon>
    </xsl:kung>

    <!– higit pang mga bagay-bagay ang mangyayari dito. –>

</xsl:template>

Ang itaas na snippet sumusuri upang makita kung ang isang katangian na pinangalanan na "Count" ng element na "bagay" ay mas mataas sa zero.  Ang XML sa likod ng ito ay magiging isang bagay tulad ng:"

<bagay Count = "5" />

Halimbawa 3: Umulit sa pamamagitan ng lahat ng mga elemento, interspersing tawag jQuery.

<!– Umulit sa pamamagitan ng lahat ng mga filter at ipakita ang tamang  mga link. –>
<xsl:for-each select="UserFilter">

  <a class="FilterHref" href="javascript:mySubmitPage(‘RemoveUserFilter’,'{@ ID}')">[X]</isang>

  <span class="fdcFilterLabel"><xsl:value-of select="@FilterValue"/></maikling panahon>

  <script type="text/javascript">

    $(dokumento).nakahanda(tungkulin(){
        <xsl:teksto><![CDATA[$("#QueryFriendlyFilters").Val( ($("#QueryFriendlyFilters").Val() + " ]]></xsl:teksto>\"<xsl:value-of select="@FilterValue"/>\"<xsl:teksto><![CDATA["));]]></xsl:teksto>
    });

  </script>

</xsl:para sa-bawat>

Ang itaas na snippet ay ang pinaka masalimuot at maaaring may mas madaling paraan upang gawin ito.

Ang XML sa likod na ito ay mukhang halos tulad nito:

<UserFilter ID = "123" FilterValue = "xyzzy" />

Snippet na ito ay iterating sa pamamagitan ng <UserFilter> nodes. 

Unang ito emits isang anchor tag na kapag nag-click invokes ng isang function na JavaScript na nasa sa pahina, Sa "mySubmitPage" at magbabalik ang halaga ng isang attribute sa <UserFilter> node na pinangalanang "ID". 

Pagkatapos ito emits ilang jQuery na naghihintay para sa pahina upang i-load.  Na jQuery update ng isang nakatagong mga patlang na pinangalanang "QueryFriendlyFilters" sa pamamagitan ng pagdaragdag ng halaga ng FilterValue ang attribute.  Tandaan ang lahat ng mga nakatutuwang <xsl:teksto> at <![CDATA[ ... ]]> mga bagay.

Iyan na ang lahat, Umaasa ito ay tumutulong sa!

</dulo>

Mag-subscribe sa aking blog.

Sundin ako sa Twitter sa http://www.twitter.com/pagalvin

2 ano sa tingin mo "XSLT at jQuery mga halimbawa

  1. Andres

    Maaari ko bang gamitin ang diskarteng ito upang i-filter ang maramihang listahan ng mga webpart sa SharePoint sa pamamagitan ng isang XSLT?

    Sumagot
    1. Paul Galvin Mag-post ng may-akda

      Hi, Ikinalulungkot kong hindi kailanman tumugon sa ito. Ito ay sinaunang sa puntong ito at kaya hindi ko susubukan. I hope you figured out what you were trying to do :).

      Sumagot

-Iwan ng sagot

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan *