Tag Archives: XSLT

XSLT ir jQuery mėginiai

Man daryti daug XSLT ir jQuery ir thought I 'd share kelis fragmentus, kad kiti gali rasti naudingos ateityje.

Pavyzdys 1: Išmeta paprasta veikiancio JavaScript / jQuery, XSLT:

<XSL:šablono rungtynės = "kažkas" XML:erdvės = "išsaugoti">

  <!– Tuščias iš užklausos draugiškas filtrai paslėpto lauko –>
  <scenarijaus tipas = "text/javascript">
    $(dokumento).paruošta(funkcija(){
      $("#QueryFriendlyFilters").val("tuščias");
    });
  </scenarijų>

</XSL:šablonas>

Kad šiek tiek skleidžia tam JavaScript, kad laukia puslapio įkėlimą (Todėl, kad $(dokumento).paruošta(…)) ir tada rinkiniai paslėpto lauko vertė pavadinimu QueryFriendlyFilters raidinė reikšmė "tuščias".

Pavyzdys 2: Naudoti <XSL:Jei> patikrinti "didesnis už",  "mažiau kaip", ir tt.

<XSL:šablono rungtynės = "kažkas" XML:erdvės = "išsaugoti">

  <div id = "fdcAllFilters">
 
    <XSL:Jei test="@Count>0">
      <span class = "fdcFilterLabel">Esami filtrai:</tarpą>
    </XSL:Jei>

    <!– Daugiau stuff vyksta čia. –>

</XSL:šablonas>

Aukščiau fragmentą tikrina jei atributas, pavadintas "Skaičiuoti", "kažkas" elementas yra didesnis už nulį.  XML už tai būtų kažkas panašaus:”

<kažkas Count = "5" />

Pavyzdys 3: Kartoti per visus elementus, Interspersing jQuery skambučius.

<!– Iterate per visus filtrus ir parodyti teisingą  nuorodos. –>
<XSL:už kiekvieną pasirinkite = "UserFilter">

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

  <span class = "fdcFilterLabel"><XSL:vertė-apie select="@FilterValue"/></tarpą>

  <scenarijaus tipas = "text/javascript">

    $(dokumento).paruošta(funkcija(){
        <XSL:tekstas><![CDATA[$("#QueryFriendlyFilters").val( ($("#QueryFriendlyFilters").val() + " ]]></XSL:tekstas>\"<XSL:vertė-apie select="@FilterValue"/>\"<XSL:tekstas><![CDATA["));]]></XSL:tekstas>
    });

  </scenarijų>

</XSL:už kiekvieną>

Aukščiau ištrauka yra pati sudėtingiausia ir gali būti lengviau būdų tai padaryti.

XML už tai atrodo maždaug taip:

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

Šiame fragmente yra Iteracja per <UserFilter> mazgų. 

Ji pirmą kartą skleidžia žymę žymėti, kai paspaudėte remiasi JavaScript funkcija, kuri jau yra puslapyje, "mySubmitPage" ir pereina esančio atributo reikšmė, <UserFilter> mazgo pavadinimu "ID". 

Ji tada skleidžia kai jQuery, kad laukia, kad įkelti.  Kad jQuery atnaujina paslėptas laukas, pavadintas "QueryFriendlyFilters" pridedant FilterValue atributo.  Pastaba visi crazy kirm <XSL:tekstas> ir <![CDATA[ … ]]> daiktai.

Štai ir viskas, Tikiuosi, kad jis padeda!

</pabaigos>

Prenumeruoti savo dienoraštį.

Sekite mane Twitter ne http://www.twitter.com/pagalvin

Be galo įdėjimo <DIV> Žymos ir jQuery

Tai atrodo kaip tokia yra originalus tema, Aš nesu įsitikinęs, kad tikrai verta dienoraštį apie, bet kad niekada nenustojo man prieš, Taigi čia mes einame šypsena

Aš dirbu apie projektą, kai I 'm traukiamosios kai kuriuos duomenis iš paieškos, pakavimo jį į XML pranešimą ir tada kad XML galiausiai transformuoti į HTML per XSLT.  Yra daug jQuery, vienas bitų, kurios įgyvendina keletas skirtukų funkcija.  Spustelėjus skirtuke (tikrai, a <DIV>), jQuery remiasi .hide() ir .show() dėl įvairių divs (pradinio puslapio apkrova parsisiųsti visą turinį, todėl šiuo atveju nėra jokių postbacks).

A ryšelyje valandos, skirtuką Perėjimas logika pradėjo elgtis su klaidom ir ji nebūtų parodyti viena iš mano skirtukus.  Galiausiai sekant jis į tai, kad programa Internet explorer (ne mažiau kaip) Maniau, kad į <DIV> įdėti daug žymos, kiek giliau nei skirti.Programuotojų įrankių rodytų:

-<DIV id = "Tab1Content">
  -<DIV>
    -<DIV>
      -<DIV id = "Tab2Content">
        -<DIV>
           …………………………
                   </DIV>  <— Galiausiai rodyti ji buvo uždaryta visą kelią čia!

Taigi, Jei aš, kad $("# Tab1Content").Slėpti(), Aš taip pat paslėpti Tab2 ir gali niekada parodyti Tab2 jei ne taip pat rodyti 1 tabuliatoriaus žymė.  I nukopijuoti ir įklijuoti kodą į visual studio, ir jis parodė, visi div's antdėklo iki gražiai, kaip jie turėjo daryti, ieškote kaip tai:

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

I ritmas galvą prie sienos metu ir pastebėjau, kad faktinė HTML kodas buvo generuoti daug tuščių <DIV> Žymos, kaip:

<įstaiga>

  <DIV id = "Tab1Content">

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

  </DIV>

  <DIV id = "Tab2Content">

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

  </DIV>

</įstaiga>

(Pirmiau yra waaaaaaaaaaaay, naratyvą.  Tuščias div žymės yra visiškai galiojantį. Kai kurie iš mano <DIV> Žymos buvo pilnas turinio, Tačiau daug daugiau nebuvo.  Aš atėjau prie realizavimo kad mano <XSL:už kiekvieną> direktyvas buvo spinduliuojantis sutrumpintos formos div žymės kai į xsl:už kiekvieną ne "rasti jokių duomenų.  Aš priversta HTML komentarą į produkcijos, kaip parodyta:

image

 

Po to, kai aš padariau, kad, visi div liniuotas gražiai ir mano skirtuką Perėjimas pradėjo dirbti.

Kaip visada, Tikiuosi, kad tai padeda kažkas kraštutiniu atveju.

</pabaigos>

Prenumeruoti savo dienoraštį.

Sekite mane Twitter ne http://www.twitter.com/pagalvin

Pavyzdys: XSLT sukurti HTML Href

Aš daro šiek tiek XSL stuff paskutiniu ir minties Norėčiau įdėti kartu mėginys mano ateityje ir kad gali būti vertės visiems mums padaryti gyvenimo the Internets XSLT-kams.

Apsvarstyti šios XML:

<FdcSearchTabsCollection Count = "2">
  <SearchTab etiketės = "pramonės" SortOrder = "00" etiketė "Pramonės" SearchConstraints = "contenttype =:Pramonės" TabID = "831b2a74-98c4-4453-8061-86e2fdb22c63" />
  <SearchTab etiketės = "praktika" SortOrder = "01" etiketė = "Praktika" SearchConstraints = "contenttype:PracticeGroups" TabID = "678e206b-6996-421f-9765-b0558fe1a9c0" />
</FdcSearchTabsCollection>

Po XSL gabalėlį sukurs surūšiuotas sąrašas hrefs skirtukų:

<XSL:šablono rungtynės = "FdcSearchTabsCollection" XML:erdvės = "išsaugoti">
   
    <!– "Visiems" skirtukas –>
    <a href = "javascript:ViewTab("Visi")">Peržiūrėti visas</a>
   
    <!– Kiekvienas atskiras skirtukas –>
    <!– Iterate per visus skirtukus ir parodyti teisingą  nuorodos. –>
    <XSL:už kiekvieną pasirinkite = "SearchTab">
      <XSL:rūšiuoti select="@SortOrder"/>

      …
      <a href = "javascript:ViewTab(‘{@TabID}’)"><XSL:vertė-apie select="@Label"/></a>
    </XSL:už kiekvieną>

    <br /> 
   

   </XSL:šablonas>

Štai kaip jis atrodo SharePoint:

SNAGHTML78aa2cb

 

 

</pabaigos>

Prenumeruoti savo dienoraštį.

Sekite mane Twitter ne http://www.twitter.com/pagalvin