Archívy kategórie: XSLT

XSLT a jQuery vzorky

Som bol robí veľa XSLT a jQuery a myslel som zdieľať niekoľko úryvkov, ktoré iní môžu nájsť užitočné v budúcnosti.

Príklad 1: Vyžarovanie jednoduchý JavaScript / jQuery v XSLT:

<XSL:Šablóna zápas = "niečo" XML:priestor = "zachovanie">

  <!– Prázdne, skryté pole priateľské filtre dotaz –>
  <skript typ = "text/javascript">
    $(dokument).pripravený(Funkcia(){
      $("#QueryFriendlyFilters").Val("empty");
    });
  </skript>

</XSL:šablóny>

Tom trochu emituje niektoré JavaScript, ktorý čaká na načítanie stránky (z dôvodu $(dokument).pripravený(…)) a potom nastaví hodnota skryté pole s názvom QueryFriendlyFilters na Literálová hodnota "empty".

Príklad 2: Použitie <XSL:Ak> skontrolovať "väčší ako",  "menší ako", atď.

<XSL:Šablóna zápas = "niečo" XML:priestor = "zachovanie">

  <div id = "fdcAllFilters">
 
    <XSL:Ak test="@Count>0">
      <span triedy = "fdcFilterLabel">Aktuálne filtre:</span>
    </XSL:Ak>

    <!– viac vecí sa deje tu. –>

</XSL:šablóny>

Vyššie úryvok skontroluje, ak atribút s názvom "Count" prvku "niečo" je väčšia ako nula.  XML za to by bolo niečo:”

<niečo počet = "5" />

Príklad 3: Iterácia súboru cez všetky prvky, interspersing jQuery hovory.

<!– Iterácia súboru cez všetky filtre a zobraziť správne  odkazy. –>
<XSL:pre každý výber = "UserFilter">

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

  <span triedy = "fdcFilterLabel"><XSL:hodnoty z select="@FilterValue"/></span>

  <skript typ = "text/javascript">

    $(dokument).pripravený(Funkcia(){
        <XSL:text><![CDATA[$("#QueryFriendlyFilters").Val( ($("#QueryFriendlyFilters").Val() + " ]]></XSL:text>\"<XSL:hodnoty z select="@FilterValue"/>\"<XSL:text><![CDATA["));]]></XSL:text>
    });

  </skript>

</XSL:pre každý>

Vyššie úryvok je najkomplexnejšie a môže byť jednoduchšie spôsoby, ako na to.

XML za to vyzerá približne takto:

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

Tento úryvok je Iterácia prostredníctvom <UserFilter> uzly. 

Najprv emituje kotva tag, ktoré po kliknutí vyvolá funkciu JavaScript, ktorý je už na stránke, "mySubmitPage" a odovzdáva hodnotu atribútu <UserFilter> uzol, s názvom "Identifikácia". 

Potom emituje niektoré jQuery, ktorý čaká na stránku načítať.  Že jQuery aktualizuje skryté pole s názvom "QueryFriendlyFilters" pridaním hodnota atribútu FilterValue.  Poznámka všetky crazy <XSL:text> a <![CDATA[ … ]]> veci.

To je všetko, Dúfam, že pomôže!

</koniec>

Vyberajte môj blog.

Nasledujte ma na stebėtų na http://www.twitter.com/pagalvin

Donekonečna vnorenia <DIV> Značky a jQuery

To sa zdá ako také podivín tému, Nie som si istý, je to naozaj stojí za blogovanie o, ale že nebol nikdy zastavený ma pred, tak tady úsmev

Som pracovať na projekt, kde I 'm ťahanie niektoré údaje z vyhľadávania, balenie je do XML správ a potom že XML sa nakoniec premení HTML pomocou XSLT.  Existuje veľa jQuery, jeden bit, ktorý implementuje niektoré tabování funkcie.  Keď kliknete na kartu (naozaj, a <DIV>), jQuery vyvolá .hide() a .show() na rôznych divs (úvodnú stránku zaťaženie prevezme všetky obsah, takže neexistujú žiadne spätných odoslaní v tomto prípade).

Pár hodín pred, kartu prepínanie logika začali správať nevyspytateľne a to by ukázať jednu z mojich záložiek.  Nakoniec sledoval som to tým, že program internet explorer (aspoň) myslel, že <DIV> Tagy vnorené ďaleko, oveľa hlbšie, než sa plánovalo.Paneli nástrojov vývojára by Ukázať:

-<div id = "Tab1Content">
  -<DIV>
    -<DIV>
      -<div id = "Tab2Content">
        -<DIV>
           …………………………
                   </DIV>  <— konečne ukazuje, že bola uzavretá celú cestu dole tu!

Takže, Ak som to urobil $("#Tab1Content").Skryť(), By tiež skryť 2 a nikdy by mohla ukázať 2 Ak nemal tiež ukazujú Tab1.  Skopírovať a vložiť kód do visual studio a to ukázal všetky div obloženia sa pekne, rovnako ako oni mali robiť, Hľadáte takhle:

-<div id = "Tab1Content">
  +<DIV>
  +<DIV>
-<div id = "Tab2Content">
  +<DIV>
  +<DIV>

Biť hlavou o stenu na chvíľu a všimol si, že v skutočnej HTML kód bol vytvára veľa prázdnych <DIV> Tagy, ako:

<telo>

  <div id = "Tab1Content">

    <div id = "row1" />
    <div id = "row2" />

  </DIV>

  <div id = "Tab2Content">

    <div id = "row1" />
    <div id = "row2" />

  </DIV>

</telo>

(Vyššie uvedené je waaaaaaaaaaaay nedbalo.  Prázdny div tagy sú úplne platné. Niektoré z mojich <DIV> Tagy boli plné obsahu, ale mnoho ďalších neboli.  Prišiel som k poznaniu, že moja <XSL:pre každý> smernice boli vyžarujúce krátky div Tagy kedy xsl:pre každú nemali "nájsť žiadne údaje.  Som nútený do výstupného HTML komentár, ako je uvedené:

image

 

Potom, čo som to urobil, všetky div postavili pekne a môj kartu prepínanie začal pracovať.

Ako vždy, Dúfam, že to pomôže niekto v núdzi.

</koniec>

Vyberajte môj blog.

Nasledujte ma na stebėtų na http://www.twitter.com/pagalvin

Príklad: XSLT vytváranie HTML Href je

Bol robí trochu XSL veci v poslednej dobe som a myslel by som dal dohromady vzorky pre moju budúce použitie a ktoré možno hodnotu pre všetkých z nás XSLT-ers obživy v internety.

Zvážte nasledujúce XML:

<FdcSearchTabsCollection počet = "2">
  <SearchTab Label = "priemysel" Parameter zoradenie = "00" Label = "Priemysel" SearchConstraints = "contenttype:Priemysel" TabID = "831b2a74-98c4-4453-8061-86e2fdb22c63" />
  <SearchTab Label = "praktiky" Parameter zoradenie = "01" Label = "Postupy" SearchConstraints = "contenttype:PracticeGroups" TabID = "678e206b-6996-421f-9765-b0558fe1a9c0" />
</FdcSearchTabsCollection>

Nasledujúci úryvok XSL vytvorí usporiadaný zoznam kariet hrefs:

<XSL:Šablóna zápas = "FdcSearchTabsCollection" XML:priestor = "zachovanie">
   
    <!– Všetky"" kartu –>
    <href = "javascript:ViewTab("Všetky")">Zobraziť všetky</a>
   
    <!– Každá karta –>
    <!– Iteráciou cez všetky karty a zobrazenie správne  odkazy. –>
    <XSL:pre každý vybrať = "SearchTab">
      <XSL:triedenie select="@SortOrder"/>

      …
      <href = "javascript:ViewTab(‘{@TabID}’)"><XSL:hodnotu z select="@Label"/></a>
    </XSL:pre každý>

    <br /> 
   

   </XSL:šablóny>

Tu je ako to vyzerá v lokalite SharePoint:

SNAGHTML78aa2cb

 

 

</koniec>

Vyberajte môj blog.

Nasledujte ma na stebėtų na http://www.twitter.com/pagalvin