Tag Archives: XSLT

XSLT in jQuery vzorcev

So bili delaš veliko XSLT in jQuery in misli, bi delež nekaj odrezke, da drugi lahko najdete koristne v prihodnosti.

Primer 1: Oddajajo preprostih JavaScript / jQuery v XSLT:

<XSL:predlogo ujemanje = "nekaj" XML:prostor = "ohranitev">

  <!– Prazen ven prijazno filtri skrito polje poizvedbe –>
  <skript type = "text/javascript">
    $(dokument).pripravljena(Funkcija(){
      $("#QueryFriendlyFilters").Val("prazne");
    });
  </skript>

</XSL:predlogo>

Da malo izpušča nekatere JavaScript, ki čaka na stran zdelati tovor (ker je $(dokument).pripravljena(…)) in nato Nastavi vrednost skrito polje z imenom QueryFriendlyFilters dobesedne vrednosti »empty«.

Primer 2: Uporaba <XSL:Če> Preverite "večje od",  "manj kot", itd.

<XSL:predlogo ujemanje = "nekaj" XML:prostor = "ohranitev">

  <div id = "fdcAllFilters">
 
    <XSL:Če test="@Count>0">
      <kalibrirni razred = "fdcFilterLabel">Trenutni filtri:</razpon>
    </XSL:Če>

    <!– več stvari se dogaja tukaj. –>

</XSL:predlogo>

Zgoraj košček preveri, če je atribut z imenom »Štetje« elementa "nekaj" večja od nič.  XML za to bi bilo nekaj podobnega:”

<nekaj Count = "5" />

Primer 3: Ponovi skozi vse elemente, interspersing jQuery klice.

<!– Ponovi skozi vse filtre in prikažete pravilno  povezave. –>
<XSL:za vsako izberite = "UserFilter">

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

  <kalibrirni razred = "fdcFilterLabel"><XSL:vrednost za select="@FilterValue"/></razpon>

  <skript type = "text/javascript">

    $(dokument).pripravljena(Funkcija(){
        <XSL:besedilo><![CDATA[$("#QueryFriendlyFilters").Val( ($("#QueryFriendlyFilters").Val() + " ]]></XSL:besedilo>\"<XSL:vrednost za select="@FilterValue"/>\"<XSL:besedilo><![CDATA["));]]></XSL:besedilo>
    });

  </skript>

</XSL:za vsako>

Zgoraj odlomek je najbolj zapletena in se lahko lažje načine delati to.

XML zadaj to videti približno takole:

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

Ta odlomek je ponavljanje skozi <UserFilter> vozlišča. 

To najprej izpušča sidro tag, ki ob kliku prikliče funkcijo JavaScript, ki je že na strani, "mySubmitPage" in prelaze vrednost atributa je <UserFilter> vozlišče imenovane "ID". 

Nato jo izpušča nekateri jQuery, ki čaka na stran naložiti.  Ta jQuery posodobi skrito polje z imenom "QueryFriendlyFilters" z dodajanjem vrednost atributa FilterValue.  Opomba vse je noro <XSL:besedilo> in <![CDATA[ … ]]> stvari.

To je to, Upam, da pomaga!

</namen>

Naročite se na moj blog.

Sledite mi na Cvrkutati na http://www.twitter.com/pagalvin

Endlessly gnezdenje <div> Oznake in jQuery

To se zdi kot take Otkačen tema, Nisem prepričan, da je res vredno blogging o, ampak to je nikoli me je ustavil pred, tako da gremo Smile

Sem telovaditi na projektu, kjer sem vleče nekaj podatkov iz iskanja, pakiranje sporočilo o napaki XML in nato da XML na koncu preoblikovala v HTML pot XSLT.  Tam sodeluje veliko jQuery, en bit, ki izvaja nekaj funkcionalnosti tabbing.  Ko kliknete na zavihek (res, a <div>), jQuery sklicuje .hide() in .show() na različnih divs (Ko začetno polnitev stran downloads vsi zadovoljen, tako da ni nobenih povratnih objav v tem primeru).

Kup ur nazaj, zanka preklopitev logika začel obnašati nepredvidljivo in ne bi prikazuje enega od svoj tabs.  Sem navsezadnje gosenicami do dejstva, da internet explorer (vsaj) mislil, da je <div> Tags ugnezdena daleč, veliko globlje, kot predvideno.Developer toolbar bi pokazal:

-<div id = "Tab1Content">
  -<div>
    -<div>
      -<div id = "Tab2Content">
        -<div>
           …………………………
                   </div>  <— končno kaže, da je zaprla vse poti tukaj!

Tako, Če sem storil a $("#Tab1Content").Skrij(), Bi tudi skriti Tab2 in nikoli ne bi pokazal Tab2, če tudi ni pokazal Tab1.  Kopirali in prilepili kodo v visual studio in je vse v div obloge gor lepo pokazala, tako, kot naj bi bili opravljali, videti takole:

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

Premagati mojo glavo ob zid za nekaj časa in opazil, da je bil dejanski HTML kodo ustvarja veliko praznih <div> Tags, kot:

<telo>

  <div id = "Tab1Content">

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

  </div>

  <div id = "Tab2Content">

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

  </div>

</telo>

(Zgoraj je waaaaaaaaaaaay poenostavljeno.  Prazen div oznake so popolnoma veljavna. Nekaj mojih <div> oznake so bile polne vsebine, vendar ni bilo veliko več.  Sem prišel do spoznanja, da moje <XSL:za vsako> direktiv so bili oddajajo skrajšani obliki div tags ko xsl:za vsako nisem "najde podatkov.  Sem prisiljen HTML komentar v izhod, kot je prikazano:

image

 

Čez sem storil to, vse div postavili lepo in moj zanka preklopitev začel delati.

Kot vedno, Jaz upanje to pomoč nekdo v ščepec.

</namen>

Naročite se na moj blog.

Sledite mi na Cvrkutati na http://www.twitter.com/pagalvin

Primer: XSLT ustvarjanje HTML Href's

Sem bil početje a košček od XSL stvari v zadnjem času in mislil sem bi skupaj vzorec v moji prihodnosti in da se lahko vrednosti za vse nas, ki živijo v internets XSLT-ers.

Razmislite o naslednjih XML:

<FdcSearchTabsCollection Count = "2">
  <SearchTab oznaka = "industrija" Vrstni_red_razvrščanja = "00" oznaka = "Industrij" SearchConstraints = "contenttype:Industrija" TabID = "831b2a74-98c4-4453-8061-86e2fdb22c63" />
  <SearchTab oznaka = "prakse" Vrstni_red_razvrščanja = "01" oznaka = "Prakse" SearchConstraints = "contenttype:PracticeGroups" TabID = "678e206b-6996-421f-9765-b0558fe1a9c0" />
</FdcSearchTabsCollection>

Naslednje odrezek XSL bo ustvarila razvrščen seznam hrefs kartic:

<XSL:predloga tekmo = "FdcSearchTabsCollection" XML:prostor = "ohranitev">
   
    <!– "Vse" TAB –>
    <a href = "javascript:ViewTab("Vse")">Prikaži vse</a>
   
    <!– Vsaka posamezna zanka –>
    <!– Ponovi vse zavihke in prikaz pravilne  povezave. –>
    <XSL:za vsako izberite = "SearchTab">
      <XSL:razvrščanje select="@SortOrder"/>

      …
      <a href = "javascript:ViewTab(‘{@TabID}’)"><XSL:vrednost od select="@Label"/></a>
    </XSL:za vsako>

    <br /> 
   

   </XSL:predlogo>

Tukaj je, kako izgleda v SharePoint:

SNAGHTML78aa2cb

 

 

</namen>

Naročite se na moj blog.

Sledite mi na Cvrkutati na http://www.twitter.com/pagalvin