Etikedaj Arkivoj: XSLT

XSLT kaj jQuery Ekzemploj

Mi estis faranta multa de XSLT kaj jQuery kaj pensis min dividus kelkajn eretojn ke aliaj povas trovi utilan en estonteco.

Ekzemplo 1: Emanigi simplan JavaScript / JQuery en XSLT:

<Xsl:Ŝablona matĉo="aĵo" Xml:Spaciala="konservaĵo">

  <!– Malplenaĵo ekstere la demando amikaj filtriloj kaŝita kampon –>
  <Skriba tipo="teksto/javascript">
    $(Dokumento).Preta(Funkcio(){
      $("#QueryFriendlyFilters").Val("Senhoma");
    });
  </Skribo>

</Xsl:Ŝablono>

Kiu mordis emanigas kelkaj JavaScript kiu atendas por la paĝo fini ŝarĝadon (Pro la $(Dokumento).Preta(…)) Kaj tiam fiksas la valoron de kaŝa kampo nomis QueryFriendlyFilters al la laŭvorta valoro “senhoma”.

Ekzemplo 2: Uzo <Xsl:Se> Kontroli “pli grandan ol”,  “Malpli ol”, Ktp.

<Xsl:Ŝablona matĉo="aĵo" Xml:Spaciala="konservaĵo">

  <Div identigaĵo="fdcAllFilters">
 
    <Xsl:Se testa="@Kalkulo>0">
      <Daŭri dum klason="fdcFilterLabel">Nunaj filtriloj:</Daŭri dum>
    </Xsl:Se>

    <!– Pli da aĵo okazas ĉi tie. –>

</Xsl:Ŝablono>

La supraj eretaj kontroloj vidi se eco nomis “Kalkulon” de la “aĵa” elemento estas pli granda ol nulo.  La XML malantaŭ tio ĉi estus io ŝatas:”

<Io Kalkulas=”5” />

Ekzemplo 3: Iterate tra ĉiuj elementoj, Intermetanta jQuery vokoj.

<!– Iterate tra ĉiuj la filtriloj kaj montri la ĝustan  Ligoj. –>
<Xsl:Pro tio ke-ĉiu elektita="UserFilter">

  <Klaso="FilterHref" Href="javascript:MySubmitPage(‘RemoveUserFilter','{@#IDENTIGA?O}')">[X]</al>

  <Daŭri dum klason="fdcFilterLabel"><Xsl:Valoro-de elektita="@FilterValue"/></Daŭri dum>

  <Skriba tipo="teksto/javascript">

    $(Dokumento).Preta(Funkcio(){
        <Xsl:Teksto><![CDATA[$("#QueryFriendlyFilters").Val( ($("#QueryFriendlyFilters").Val() + " ]]></Xsl:Teksto>\"<Xsl:Valoro-de elektita="@FilterValue"/>\"<Xsl:Teksto><![CDATA["));]]></Xsl:Teksto>
    });

  </Skribo>

</Xsl:Pro tio ke-ĉiu>

La supra ereto estas la plej kompleksa kaj tie povas esti pli facilaj vojoj fari ĝin.

La XML malantaŭ ĉi tiuj rigardoj malglate tiel:

<UserFilter IDENTIGAĴO=”123” FilterValue=”xyzzy” />

Ĉi tiu ereto estas iterating tra <UserFilter> Nodoj. 

Ĝi unue emanigas ankran etikedon ke kiam klakita alvokas JavaScript funkcio kiu estas jam sur la paĝo, “MySubmitPage” kaj pasas la valoron de eco sur la <UserFilter> Nodo nomis “IDENTIGAĴON”. 

Ĝi tiam emanigas kelkaj jQuery kiu atendas por la paĝo ŝarĝi.  KE jQuery ĝisdatigas kaŝan kampon nomis “QueryFriendlyFilters” de aldonanta la valoron de la FilterValue eco.  Noti ĉiuj la freneza <Xsl:Teksto> Kaj <![CDATA[ … ]]> Aĵo.

Tio estas ĝi, Esperi ĝin helpoj!

</Fino>

Aboni al mia blogo.

Sekvi min sur Pepi ĉe http://www.twitter.com/pagalvin

Endlessly Nestado <Div> Etikedoj kaj jQuery

Tio ĉi ŝajnas kiel tia bizarula temo, Mi ne estas certe ĝi estas vere valora blogging pri, Sed tio estas neniam haltita min antaŭe, Tiel ĉi tie ni iras rideto

Mi estas eliranta sur projekto kie mi estas tiranta kelkajn datumojn de serĉo, Prezentanta ĝin supre en XMLa mesaĝo kaj tiam ke XML estas fine transformita en HTML tra XSLT.  Tie estas multa jQuery okupita, Unu mordis de kiu efektivigas kelkaj tabbing funkcio.  Kiam vi klakas sur klapeto (Vere, al <Div>), JQuery alvokas .Felo() Kaj .Rezulto() Sur diversaj divs (La komenca paĝa ŝarĝo elŝutas ĉiuj la enhavo sekve estas ne postbacks en ĉi tiu kazo).

Aro de horoj antaŭe, La klapeto ŝaltanta logikon komencita konduti nekonstante kaj ĝi ne montrus unu el miaj klapetoj.  Mi fine spuris ĝin malsupren al la fakto ke interreta esploristo (Almenaŭ) Pensis ke la <Div> Etikedoj nestis ege, Ege pli profunda ol celita.La ellaboranto toolbar montrus:

-<Div identigaĵo=”Tab1Content”>
  -<Div>
    -<Div>
      -<Div identigaĵo=”Tab2Content”>
        -<Div>
           …………………………
                   </Div>  <—Fine montranta ĝin estis fermita tute malsupren ĉi tie!

Tiel, Se mi faris $(“#Tab1Content”).Felo(), Mi ankaŭ kaŝus Tab2 kaj min neniam povus montri Tab2 se mi ne ankaŭ montris Tab1.  Mi kopiis kaj almetis la kodon supre en vida studio kaj ĝi montris ĉiujn de la div-a viciganta agrable, Nur ŝatas ilin estis supozita esti faranta, Similanta tion ĉi:

-<Div identigaĵo=”Tab1Content”>
  +<Div>
  +<Div>
-<Div identigaĵo=”Tab2Content”>
  +<Div>
  +<Div>

Mi venkas mian kapon kontraŭ la muro por momento kaj rimarkita ke en la reala HTMLa kodo estis produktanta multan senhoman <Div> Etikedoj, Ŝatas:

<Korpo>

  <Div identigaĵo=”Tab1Content”>

    <Div identigaĵo=”row1” />
    <Div identigaĵo=”row2” />

  </Div>

  <Div identigaĵo=”Tab2Content”>

    <Div identigaĵo=”row1” />
    <Div identigaĵo=”row2” />

  </Div>

</Korpo>

(La sur estas waaaaaaaaaaaay oversimplified.  La senhoma div etikedoj estas tute validaj. Kelkaj de mia <Div> Etikedoj estis plene de enhavo, Sed multa plio ne estis.  Mi venis al la konscio ke mia <Xsl:Pro tio ke-ĉiu> Instrukcioj estis emanigantaj la mallongan-formo div etikedas kiam la xsl:Pro tio ke-ĉiu faris ne' trovas ajnan datumon.  Mi devigis HTMLan rimarkon en la produktado, Kiel montrita:

image

 

Post kiam mi faris tion, Ĉiuj la div-a vicigis agrable kaj mia klapeto ŝaltanta komencita laboranta.

Kiel ĉiam, Mi esperas tion ĉi helpas iun en pinĉo.

</Fino>

Aboni al mia blogo.

Sekvi min sur Pepi ĉe http://www.twitter.com/pagalvin

Ekzemplo: XSLT Kreanta HTML Href-a

Mi estis faranta iom de XSLa aĵo lastatempe kaj pensis min kunmetus ekzemplon por mia estonta referenco kaj ke povas esti de valoro al ni ĉiuj XSLT-ers faranta loĝadon en la interretoj.

Konsideri la sekvantan XML:

<FdcSearchTabsCollection Kalkulo="2">
  <SearchTab Etikeda="Industrio" SortOrder=”00” Etikedaj=”Industrioj” SearchConstraints="contenttype:Industrio" TabID="831b2a74-98c4-4453-8061-86e2fdb22c63"/>
  <SearchTab Etikedaj="Praktikoj" SortOrder=”01” Etikedo=”Praktikadas” SearchConstraints="contenttype:PracticeGroups" TabID="678e206b-6996-421f-9765-b0558fe1a9c0"/>
</FdcSearchTabsCollection>

La sekvanta XSLa ereto produktos ordigita liston de hrefs klapetoj:

<Xsl:Ŝablona matĉo="FdcSearchTabsCollection" Xml:Spaciala="konservaĵo">
   
    <!– La "ĉiuj" Klapeto –>
    <href="javascript:ViewTab(‘Ĉiuj')">Vidi ĉiujn</al>
   
    <!– Ĉiu individua klapeto –>
    <!– Iterate tra ĉiuj la Klapetoj kaj montri la ĝustan  Ligoj. –>
    <Xsl:Pro tio ke-ĉiu elektita="SearchTab">
      <Xsl:Ordigi elektitan="@SortOrder"/>

      …
      <href="javascript:ViewTab(?{@TabID}')"><Xsl:Valoro-de elektita="@Etikedo"/></al>
    </Xsl:Pro tio ke-ĉiu>

    <Br/> 
   

   </Xsl:Ŝablono>

Ĉi tie-a kio ĝi similas en SharePoint:

SNAGHTML78aa2cb

 

 

</Fino>

Aboni al mia blogo.

Sekvi min sur Pepi ĉe http://www.twitter.com/pagalvin