Arsip Kategori: XSLT

XSLT dan jQuery sampel

Saya telah melakukan banyak XSLT, jQuery, dan pikir saya akan berbagi beberapa potongan yang orang lain mungkin menemukan berguna di masa depan.

Contoh 1: Memancarkan JavaScript sederhana / jQuery dalam XSLT:

<Extensible Stylesheet Language:template pertandingan = "sesuatu" XML:ruang = "melestarikan">

  <!– Kosong keluar bidang tersembunyi ramah filter permintaan –>
  <script type = "text/javascript">
    $(dokumen).siap(fungsi(){
      $("#QueryFriendlyFilters").Val("kosong");
    });
  </script>

</Extensible Stylesheet Language:template>

Sedikit memancarkan beberapa JavaScript yang menunggu untuk halaman untuk menyelesaikan pemuatan (karena $(dokumen).siap(…)) dan kemudian set nilai bidang tersembunyi bernama QueryFriendlyFilters nilai literal "kosong".

Contoh 2: Penggunaan <Extensible Stylesheet Language:Jika> untuk memeriksa "lebih besar",  "kurang", dll.

<Extensible Stylesheet Language:template pertandingan = "sesuatu" XML:ruang = "melestarikan">

  <DIV id = "fdcAllFilters">
 
    <Extensible Stylesheet Language:Jika test="@Count>0">
      <span class = "fdcFilterLabel">Current filter:</rentang>
    </Extensible Stylesheet Language:Jika>

    <!– lebih banyak barang yang terjadi di sini. –>

</Extensible Stylesheet Language:template>

Potongan di atas memeriksa untuk melihat apakah atribut yang bernama "Count" dari "sesuatu" elemen yang lebih besar dari nol.  XML di balik ini akan menjadi sesuatu seperti:”

<sesuatu Count = "5" />

Contoh 3: Iterate melalui semua elemen, interspersing jQuery panggilan.

<!– Iterate melalui semua filter dan menampilkan yang benar  link. –>
<Extensible Stylesheet Language:untuk setiap = pilih "UserFilter">

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

  <span class = "fdcFilterLabel"><Extensible Stylesheet Language:nilai dari select="@FilterValue"/></rentang>

  <script type = "text/javascript">

    $(dokumen).siap(fungsi(){
        <Extensible Stylesheet Language:teks><![CDATA[$("#QueryFriendlyFilters").Val( ($("#QueryFriendlyFilters").Val() + " ]]></Extensible Stylesheet Language:teks>\"<Extensible Stylesheet Language:nilai dari select="@FilterValue"/>\"<Extensible Stylesheet Language:teks><![CDATA["));]]></Extensible Stylesheet Language:teks>
    });

  </script>

</Extensible Stylesheet Language:untuk setiap>

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

XML di balik ini terlihat kira-kira seperti ini:

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

Potongan ini iterasi melalui <UserFilter> node. 

Pertama memancarkan jangkar tag yang ketika diklik memanggil fungsi JavaScript yang sudah pada halaman, "mySubmitPage" dan melewati nilai atribut <UserFilter> simpul yang bernama "ID". 

Itu kemudian memancarkan beberapa jQuery yang menunggu untuk halaman untuk memuat.  JQuery update bidang tersembunyi yang bernama "QueryFriendlyFilters" dengan menambahkan nilai atribut FilterValue.  Catatan semua gila <Extensible Stylesheet Language:teks> dan <![CDATA[ … ]]> barang.

That's it, hope it helps!

</akhir>

Berlangganan ke blog saya.

Ikuti saya di kegugupan di http://www.twitter.com/pagalvin

Tanpa henti bersarang <div> Tag dan jQuery

Ini tampaknya seperti eksentrik topik, I 'm not sure it's benar-benar worth blogging tentang, tapi itu tidak pernah berhenti saya sebelumnya, Jadi di sini kita pergi Tersenyum

Saya bekerja pada sebuah proyek di mana aku menarik beberapa data dari pencarian, Kemasan ini ke pesan XML dan kemudian XML yang pada akhirnya berubah menjadi HTML melalui XSLT.  Ada banyak jQuery yang terlibat, salah satu dari sedikit yang mengimplementasikan beberapa fungsi tabbing.  Bila Anda klik pada tab (Benarkah, a <div>), jQuery memanggil .hide() dan .show() pada berbagai divs (beban awal halaman download semua konten jadi tidak ada postbacks dalam hal ini).

Sekelompok menit yang lalu, tab beralih logika mulai bersikap tak menentu dan itu tidak menunjukkan salah satu tab saya.  Saya akhirnya dilacak ke kenyataan bahwa internet explorer (setidaknya) berpikir bahwa <div> Tag bersarang jauh, jauh lebih dalam daripada yang dimaksudkan.Toolbar pengembang akan menunjukkan:

-<div id = "Tab1Content">
  -<div>
    -<div>
      -<div id = "Tab2Content">
        -<div>
           …………………………
                   </div>  <-akhirnya menunjukkan itu ditutup sepanjang jalan di sini!

Jadi, Jika saya melakukan $("#Tab1Content").Sembunyikan(), Saya juga akan menyembunyikan Tab2 dan aku tidak pernah bisa menunjukkan Tab2 jika aku juga tidak menunjukkan Tab1.  Aku disalin dan disisipkan kode ke visual studio dan menunjukkan semua lapisan div up manis, sama seperti mereka seharusnya melakukan, tampak seperti ini:

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

Aku mengalahkan kepalaku ke dinding untuk sementara dan melihat bahwa dalam HTML sebenarnya kode ini menghasilkan banyak kosong <div> Tags, seperti:

<bodyHTMLan >>< kuat > pesan yang kuat.</strong> </body> </html> ">

  <div id = "Tab1Content">

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

  </div>

  <div id = "Tab2Content">

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

  </div>

</bodyHTMLan >>< kuat > pesan yang kuat.</strong> </body> </html> ">

(Di atas adalah waaaaaaaaaaaay yang disederhanakan.  Tag div kosong benar-benar berlaku. Beberapa saya <div> Tag yang penuh dengan konten, tetapi banyak lagi tidak.  Saya datang ke realisasi bahwa saya <Extensible Stylesheet Language:untuk setiap> arahan yang memancarkan bentuk pendek div tag ketika xsl:tidak untuk setiap ' menemukan data.  Aku memaksa komentar HTML ke output, seperti yang ditunjukkan:

image

 

Setelah saya melakukan itu, Semua div berbaris dengan baik dan tab beralih mulai bekerja.

Seperti biasa, Saya harap ini membantu seseorang dalam keadaan darurat.

</akhir>

Berlangganan ke blog saya.

Ikuti saya di kegugupan di http://www.twitter.com/pagalvin

Contoh: XSLT menciptakan HTML Href

Saya telah melakukan sedikit barang XSL akhir-akhir ini dan berpikir saya akan mengumpulkan sampel untuk referensi di masa mendatang saya dan yang mungkin bernilai kepada kita semua XSLT-ers mencari nafkah di internets.

Mempertimbangkan XML berikut:

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

Potongan XSL berikut akan menghasilkan daftar diurutkan hrefs tab:

<Extensible Stylesheet Language:template pertandingan = "FdcSearchTabsCollection" XML:ruang = "melestarikan">
   
    <!– "Semua" tab –>
    <a href = "javascript:ViewTab('Semua')">Lihat semua</a>
   
    <!– Setiap individu tab –>
    <!– Iterate melalui semua tab dan menampilkan yang benar  link. –>
    <Extensible Stylesheet Language:untuk setiap = pilih "SearchTab">
      <Extensible Stylesheet Language:semacam select="@SortOrder"/>

      …
      <a href = "javascript:ViewTab(‘{@ TabID}’)"><Extensible Stylesheet Language:nilai dari select="@Label"/></a>
    </Extensible Stylesheet Language:untuk setiap>

    <br /> 
   

   </Extensible Stylesheet Language:template>

Berikut adalah apa yang tampak seperti dalam SharePoint:

SNAGHTML78aa2cb

 

 

</akhir>

Berlangganan ke blog saya.

Ikuti saya di kegugupan di http://www.twitter.com/pagalvin