Arkib Kategori: XSLT

Sampel XSLT dan jQuery

Saya telah melakukan banyak daripada XSLT dan jQuery dan fikir saya akan berkongsi beberapa coretan yang lain mungkin berguna pada masa akan datang.

Contoh 1: Mengeluarkan JavaScript mudah / jQuery dalam XSLT:

<Pemacu:perlawanan template = "sesuatu" xml:angkasa = "memelihara">

  <!– Kosong daripada penapis mesra bidang tersembunyi pertanyaan –>
  <skrip jenis = "text/javascript">
    $(dokumen).bersedia(fungsi(){
      $("#QueryFriendlyFilters").val("kosong");
    });
  </skrip>

</Pemacu:template>

Yang sedikit mengeluarkan beberapa JavaScript yang menunggu halaman untuk menyelesaikan loading (kerana $(dokumen).bersedia(...)) dan kemudian menetapkan nilai medan tersembunyi dinamakan QueryFriendlyFilters kepada nilai literal "kosong".

Contoh 2: Gunakan <Pemacu:jika> untuk memeriksa "lebih besar daripada",  "Kurang daripada", dan sebagainya..

<Pemacu:perlawanan template = "sesuatu" xml:angkasa = "memelihara">

  <DIV id = "fdcAllFilters">
 
    <Pemacu:Jika test="@Count>0">
      <rentang class = "fdcFilterLabel">Penapis semasa:</span>
    </Pemacu:jika>

    <!– lebih banyak bahan yang berlaku di sini. –>

</Pemacu:template>

Coretan di atas memeriksa untuk melihat jika satu sifat yang dinamakan "Count" kepada "sesuatu" elemen adalah lebih besar daripada sifar.  XML belakang ini akan menjadi sesuatu seperti:"

<sesuatu Count = "5" />

Contoh 3: Melelar melalui semua unsur-unsur, interspersing panggilan jQuery.

<!– Melelar melalui semua penapis dan memaparkan betul  pautan. –>
<Pemacu:= Pilih untuk-setiap "UserFilter">

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

  <rentang class = "fdcFilterLabel"><Pemacu:nilai bagi select="@FilterValue"/></span>

  <skrip jenis = "text/javascript">

    $(dokumen).bersedia(fungsi(){
        <Pemacu:teks><![CDATA[$("#QueryFriendlyFilters").val( ($("#QueryFriendlyFilters").val() + " ]]></Pemacu:teks>\"<Pemacu:nilai bagi select="@FilterValue"/>\"<Pemacu:teks><![CDATA["));]]></Pemacu:teks>
    });

  </skrip>

</Pemacu:untuk setiap>

Coretan di atas adalah yang paling kompleks dan mungkin ada cara yang lebih mudah untuk melakukannya.

XML belakang ini kelihatan lebih kurang seperti ini:

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

Coretan ini iterating melalui <UserFilter> nod. 

Ia mula-mula mengeluarkan tag anchor yang apabila diklik menyembah fungsi JavaScript yang sudah di halaman, "MySubmitPage" dan pas nilai atribut pada <UserFilter> nod dinamakan "ID". 

Ia kemudian mengeluarkan beberapa jQuery yang menunggu untuk laman untuk memuatkan.  Yang kemaskini jQuery medan tersembunyi yang dinamakan "QueryFriendlyFilters" dengan menambah nilai sifat FilterValue itu.  Perhatikan semua gila <Pemacu:teks> dan <![CDATA[ ... ]]> barangan.

Itu sahaja, berharap ia membantu!

</akhir>

Langgan ke blog saya.

Mengikuti aku di Twitter http://www.twitter.com/pagalvin

Henti-henti Penyarangan <div> Tag dan jQuery

Ini seolah-olah seperti apa-apa topik oddball, Saya tidak pasti ia adalah blog benar-benar bernilai kira-kira, tetapi itu tidak pernah berhenti saya sebelum, jadi di sini kita pergi Smile

Saya bekerja di sebuah projek di mana saya menarik beberapa data dari carian, pembungkusan ia ke dalam mesej XML dan kemudian bahawa XML akhirnya berubah menjadi HTML melalui XSLT.  Ada banyak jQuery terlibat, satu bit yang melaksanakan beberapa fungsi tabbing.  Apabila anda klik pada tab (benar-benar, 1 <div>), jQuery menyembah. menyembunyikan() dan. menunjukkan() mengenai pelbagai divs (beban halaman awal memuat turun semua kandungan supaya tidak ada postbacks dalam kes ini).

Sekumpulan jam yang lalu, logik beralih tab mula berkelakuan tidak menentu dan ia tidak akan menunjukkan salah satu tab saya.  Saya akhirnya dikesan ia turun kepada fakta bahawa internet explorer (sekurang-kurangnya) berpendapat bahawa <div> tags bersarang jauh, jauh lebih mendalam daripada toolbar pemaju intended.The akan menunjukkan:

-<id div = "Tab1Content">
  -<div>
    -<div>
      -<id div = "Tab2Content">
        -<div>
           ..............................
                   </div>  <-Akhirnya menunjukkan ia telah ditutup sepanjang jalan ke sini!

Jadi, jika saya melakukan $("# Tab1Content").menyembunyikan(), Saya juga akan menyembunyikan Tab2 dan saya tidak dapat menunjukkan Tab2 jika saya tidak juga menunjukkan Tab1.  Saya disalin dan ditampal kod ke dalam studio visual dan ia menunjukkan semua lapisan div terpulang baik, sama seperti mereka sepatutnya melakukan, kelihatan seperti ini:

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

Aku pukul kepala saya ke dinding untuk beberapa ketika dan melihat bahawa dalam HTML kod sebenar telah menjana banyak kosong <div> tags, seperti:

<badan>

  <id div = "Tab1Content">

    <div id = "ROW1" />
    <div id = "ROW2" />

  </div>

  <id div = "Tab2Content">

    <div id = "ROW1" />
    <div id = "ROW2" />

  </div>

</badan>

(Di atas adalah waaaaaaaaaaaay terlalu dipermudahkan.  Tag div kosong adalah betul-betul sah. Sebahagian daripada saya <div> tags penuh dengan kandungan, tetapi banyak lagi tidak.  Saya datang untuk menyedari bahawa saya <Pemacu:untuk setiap> arahan telah mengeluarkan tag div pendek bentuk apabila Pemacu:untuk setiap tidak 'mencari apa-apa data.  Aku memaksa satu komen HTML ke dalam output, seperti yang ditunjukkan:

image

 

Selepas saya lakukan, semua div itu yang berbaris dengan baik dan menukar tab saya mula bekerja.

Seperti biasa, Saya harap ini membantu seseorang dalam secubit.

</akhir>

Langgan ke blog saya.

Mengikuti aku di Twitter http://www.twitter.com/pagalvin

Contoh: XSLT mewujudkan HTML href ini

Saya telah melakukan sedikit barangan XSL sejak kebelakangan ini dan fikir saya akan meletakkan bersama-sama sampel untuk rujukan masa depan saya dan yang boleh menjadi nilai kepada kita semua XSLT-ers membuat hidup di internets.

Pertimbangkan XML berikut:

<Kiraan FdcSearchTabsCollection = "2">
  <SearchTab Label = "industri" SortOrder = "00" Label = "Industri" SearchConstraints = "contenttype:Industri" TabID = "831b2a74-98c4-4453-8061-86e2fdb22c63" />
  <SearchTab Label = "amalan-amalan" SortOrder = "01" Label = "Amalan" SearchConstraints = "contenttype:PracticeGroups" TabID = "678e206b-6996-421f-9765-b0558fe1a9c0" />
</FdcSearchTabsCollection>

The XSL berikut coretan akan menjana senarai disusun daripada pelbagai tab hrefs:

<Pemacu:perlawanan template "FdcSearchTabsCollection =" xml:angkasa = "memelihara">
   
    <!– "Semua" tab –>
    <a href = "javascript:ViewTab('Semua')">Lihat semua</1>
   
    <!– Setiap tab individu –>
    <!– Melelar melalui semua Tabs dan memaparkan betul  pautan. –>
    <Pemacu:= Pilih untuk-setiap "SearchTab">
      <Pemacu:jenis select="@SortOrder"/>

      …
      <a href = "javascript:ViewTab(‘{@TabID}')"><Pemacu:nilai bagi select="@Label"/></1>
    </Pemacu:untuk setiap>

    <br /> 
   

   </Pemacu:template>

Berikut adalah apa yang ia kelihatan seperti di SharePoint:

SNAGHTML78aa2cb

 

 

</akhir>

Langgan ke blog saya.

Mengikuti aku di Twitter http://www.twitter.com/pagalvin