Menampilkan konten permintaan Web bagian hasil dalam Grid / Tabel

Ikhtisar dan tujuan

Keluar dari kotak, MOSS’ Konten permintaan Web bagian (CQWP) Menampilkan hasil dalam format daftar, mirip dengan hasil pencarian. Hal ini juga memungkinkan untuk menampilkan hasil dalam grid format (yaitu. Format tabel HTML). Grid format lebih baik dalam beberapa keadaan. Saya menjelaskan bagaimana untuk mencapai efek dalam artikel ini.

Bisnis skenario

Saya telah bekerja dengan klien pada peluncuran MOSS perusahaan-lebar. Kami telah merancang taksonomi mereka sedemikian rupa sehingga proyek warga negara kelas pertama dalam hirarki dan memiliki situs sendiri tingkat atas. Manajer Proyek menjaga daftar singleton informasi ringkasan proyek, seperti judul, anggaran, tanggal penyelesaian yang diharapkan, anggaran yang tersisa dan bidang ringkasan tipe lainnya. Oleh "singleton" Maksudku daftar SharePoint kustom dijamin mengandung hanya satu item. Mudah, tampak seperti ini:

gambar

Pendekatan teknis adalah sama seperti yang dijelaskan Sini (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!447.entry). CQWP menggunakan XSL mengubah untuk memancarkan HTML untuk browser untuk membuat.

Saya selalu membayangkan hasil sebelum menyelam ke dalam XSL karena XSL adalah mimpi buruk. Berikut adalah hasil yang saya inginkan:

gambar

HTML seperti ini menghasilkan hasil yang:

<HTML>
 <bodyHTMLan >><  kuat >  pesan yang kuat.</strong>  </body>  </html> ">
 <Pusat>
 <Meja perbatasan= 1>

<!-- Label-->
 <TR bgcolor= biru>
 <TD><font warna= putih><b>Nama proyek</b></font></TD>
 <TD menyelaraskan= kanan><font warna= putih><b>Tanggal lengkap</b></font></TD>
 <TD menyelaraskan= kanan><font warna= putih><b>Anggaran</b></font></TD>
 <TD menyelaraskan= kanan><font warna= putih><b>Biaya sebenarnya</b></font></TD>
 <TD><font warna= putih><b>Keseluruhan Status</b></font></TD>
 </TR>

<TR>
 <TD>Re-kawat ruang komputer.</TD>
 <TD menyelaraskan= kanan>02/01/08</TD>
 <TD menyelaraskan= kanan>22,500.00</TD>
 <TD menyelaraskan= kanan>19,000.00</TD>
 <TD>Berlangsung</TD>
 </TR>

<TR>
 <TD>Penyediaan server untuk meng-Upgrade SQL</TD>
 <TD menyelaraskan= kanan>04/01/08</TD>
 <TD menyelaraskan= kanan>7,500.00</TD>
 <TD menyelaraskan= kanan>0.00</TD>
 <TD>Direncanakan</TD>
 </TR>

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

Pendekatan

Ikuti langkah-langkah untuk membuat grid:

  1. Mengidentifikasi komponen grid (baris kolom).
  2. Mendefinisikan dan menciptakan situs diperlukan kolom.
  3. Membuat sub situs untuk proyek dan daftar singleton.
  4. Tambahkan CQWP ke halaman web dan mengkonfigurasinya untuk mencari daftar Anda.
  5. Memodifikasi CQWP XML untuk mengumpulkan kolom tambahan.
  6. Memodifikasi XSL untuk menghasilkan daftar.

Aku akan berkonsentrasi pada nomor enam. Nomor satu sampai empat adalah lurus ke depan dan sesuatu yang setiap pengguna CQWP telah dilakukan. Nomor lima telah didokumentasikan dengan baik oleh orang lain termasuk layar-shot sarat artikel ini lengkap dari MSDN Sini (http://msdn2.microsoft.com/en-us/library/bb897399.aspx) dan Heather Salomo blog Sini (http://www.heathersolomon.com/blog/articles/CustomItemStyle.aspx).

Mur dan baut

Memulai dan menerapkan langkah-langkah satu melalui lima per dokumentasi MSDN dan Heather Salomo artikel.

Pada titik ini, Anda telah menambahkan CQWP Anda ke halaman dan Anda memiliki Anda <CommonViewFields> dikonfigurasi sebagai diperlukan.

Mengikuti langkah-langkah biasa, Saya mendapatkan hasil menengah ini:

1. Membuat jenis konten, daftar kustom templatized untuk tipe konten dan dua situs. Berikut adalah jenis konten:

gambar

Berikut adalah struktur situs:

gambar

2. Tambahkan CQWP setelah membuat saya subsites proyek dan singleton Daftar ringkasan proyek:

gambar

3. Menambahkan semua informasi tambahan yang saya ingin melalui <CommonViewFields>:

        <properti Nama="CommonViewFields" jenis="string">Project_x0020_Name;Project_x0020_Expenses;Project_x0020_Status;Project_x0020_Start_x0020_Date;Project_x0020_End_x0020_Date;Project_x0020_Budget</properti>

Perhatikan bahwa aku harus menjaga semua bidang properti pada satu baris atau itu tidak akan bekerja (CQWP akan memberitahu saya bahwa query kembali tidak ada item).

4. Pada titik ini, kita sudah siap untuk bergerak melampaui artikel MSDN dan sandal di atas untuk Heather Salomo artikel. Ikuti langkah-langkah yang mulai dekat langkah #5 untuk membuat disesuaikan / unghosted versi ItemStyle.xsl. Saya mengikuti saran Heather, melalui langkah 11 dan mendapatkan hasil menengah ini:

4.1: Nama template XSL saya sebagai berikut:

<Extensible Stylesheet Language:Nama template = "Grid" cocok = "Row[@Style = 'Grid']" mode = "itemstyle">

Juga sedikit mengubah dia menyarankan <Extensible Stylesheet Language:untuk setiap …> dengan menambahkan <br /> Tag untuk menyediakan daftar cleaner:

    <Extensible Stylesheet Language:untuk setiap Pilih="@*">
      P:<Extensible Stylesheet Language:nilai dari Pilih="Nama()" /><br/>
    </Extensible Stylesheet Language:untuk setiap>

4.2: Cara mengubah bagian web, pergi ke tampilan dan pilih "Grid" gaya:

gambar

Menerapkan perubahan dan inilah hasilnya:

gambar

Kita bisa melihat dari atas bahwa bidang yang kita ingin (Nama proyek, biaya, status, dll) tersedia bagi kita untuk digunakan ketika kita memancarkan HTML. Tidak hanya itu, Tapi kita melihat nama-nama yang kita harus referensi kolom dalam XSL. Misalnya, kita referensi Status proyek sebagai "Project_x005F_x0020_Name".

Pada titik ini, kami berangkat dari Heather's blog dan dari atas bahu raksasa ini, Saya menambahkan sedikit saya sendiri.

ContentQueryMain.xsl

CATATAN: Ketika membuat perubahan baik ContentQueryMain.xsl maupun ItemStyle.xsl, Anda perlu memeriksa berkas tersebut kembali sebelum Anda melihat efek dari perubahan Anda.

Untuk membuat grid tujuan, MOSS menggunakan dua file XSL yang berbeda untuk menghasilkan hasil yang kita lihat dari CQWP. Untuk menghasilkan sedikit sebelumnya output, kami diubah ItemStyle.xsl. MOSS benar-benar menggunakan file XSL lain, ContentQueryMain.xsl ke dalam hubungannya dengan ItemStyle.xsl untuk menghasilkan HTML yang. Seperti namanya, ContentQueryMain.xsl adalah "utama" XSL yang mengontrol aliran keseluruhan terjemahan. Iterates semua item yang ditemukan dan melewati mereka satu per satu untuk template ItemStyle.xsl. Kami akan mengubah ItemStyle.xsl untuk menghasilkan terbuka <Meja> Tag sebelum memancarkan baris pertama dari data dan penutupan <Meja> Tag setelah memancarkan baris terakhir. Untuk mencapai hal ini, ContentQueryMain.xsl yang dimodifikasi untuk memberikan dua parameter untuk kami "grid" template di ItemStyle.xsl, "baris terakhir" dan "baris saat ini". ItemStyle.xsl menggunakan ini untuk kondisional memancarkan Tag diperlukan.

Menggunakan teknik Heather Salomo, Kami mencari ContentQueryMain.xsl. Terletak di tempat yang sama seperti ItemStyle.xsl. Tembakan layar harus membantu:

gambar

Kita perlu untuk membuat perubahan berikut:

  • Memodifikasi sebuah template xsl, "CallItemTemplate" yang benar-benar memanggil template Grid kami di ItemStyle.xsl. Kami akan menyampaikan dua parameter ke Grid template sehingga akan memiliki data yang dibutuhkan untuk menghasilkan kondisional pembukaan dan penutupan <Meja> Tags.
  • Memodifikasi sedikit lain dari ContentQueryMain.xsl bahwa panggilan "CallItemTemplate" untuk lulus "LastRow" parameter jadi LastRow yang akan diteruskan ke template Grid kami.

Menemukan template bernama "OuterTemplate.CallItemTemplate" diidentifikasi oleh string:

  <Extensible Stylesheet Language:template Nama="OuterTemplate.CallItemTemplate">

Mengganti seluruh template sebagai berikut:

  <Extensible Stylesheet Language:template Nama="OuterTemplate.CallItemTemplate">
    <Extensible Stylesheet Language:Param Nama="CurPosition" />

    <!--
      Tambahkan "LastRow" parameter.
      Kami hanya menggunakannya ketika lulus gaya item dalam "Grid".
    -->
    <Extensible Stylesheet Language:Param Nama="LastRow" />

    <Extensible Stylesheet Language:memilih>
      <Extensible Stylesheet Language:Kapan tes="@Style = 'NewsRollUpItem'">
        <Extensible Stylesheet Language:menerapkan template Pilih="." mode="itemstyle">
          <Extensible Stylesheet Language:dengan param Nama="EditMode" Pilih="$cbq_iseditmode" />
        </Extensible Stylesheet Language:menerapkan template>
      </Extensible Stylesheet Language:Kapan>
      <Extensible Stylesheet Language:Kapan tes="@Style = 'NewsBigItem'">
        <Extensible Stylesheet Language:menerapkan template Pilih="." mode="itemstyle">
          <Extensible Stylesheet Language:dengan param Nama="CurPos" Pilih="$CurPosition" />
        </Extensible Stylesheet Language:menerapkan template>
      </Extensible Stylesheet Language:Kapan>
      <Extensible Stylesheet Language:Kapan tes="@Style = 'NewsCategoryItem'">
        <Extensible Stylesheet Language:menerapkan template Pilih="." mode="itemstyle">
          <Extensible Stylesheet Language:dengan param Nama="CurPos" Pilih="$CurPosition" />
        </Extensible Stylesheet Language:menerapkan template>
      </Extensible Stylesheet Language:Kapan>

      <!--
              Melewati posisi saat ini dan lastrow ke Grid itemstyle.xsl template.
              ItemStyle.xsl akan menggunakannya untuk memancarkan terbuka dan menutup <Meja> Tags.
      -->
      <Extensible Stylesheet Language:Kapan tes="@Style = 'Grid'">
        <Extensible Stylesheet Language:menerapkan template Pilih="." mode="itemstyle">
          <Extensible Stylesheet Language:dengan param Nama="CurPos" Pilih="$CurPosition" />
          <Extensible Stylesheet Language:dengan param Nama="Terakhir" Pilih="$LastRow" />
        </Extensible Stylesheet Language:menerapkan template>
      </Extensible Stylesheet Language:Kapan>

      <Extensible Stylesheet Language:Jika tidak>
        <Extensible Stylesheet Language:menerapkan template Pilih="." mode="itemstyle">
        </Extensible Stylesheet Language:menerapkan template>
      </Extensible Stylesheet Language:Jika tidak>
    </Extensible Stylesheet Language:memilih>
  </Extensible Stylesheet Language:template>

Komentar menggambarkan tujuan perubahan.

Tentu saja, "OuterTemplate.CallItemTemplate" itu sendiri disebut dari template lain. Menemukan template itu dengan mencari string teks ini:

<Extensible Stylesheet Language:template Nama="OuterTemplate.Body">

Gulir melalui petunjuk di OuterTemplate.Body dan masukkan LastRow parameter sebagai berikut (ditampilkan sebagai komentar dalam huruf miring):

<Extensible Stylesheet Language:panggilan-template Nama="OuterTemplate.CallItemTemplate">
  <Extensible Stylesheet Language:dengan param Nama="CurPosition" Pilih="$CurPosition" />
  <!-- Masukkan LastRow parameter. -->
  <Extensible Stylesheet Language:dengan param Nama="LastRow" Pilih="$LastRow"/>
</Extensible Stylesheet Language:panggilan-template>

Setelah semua ini, kami akhirnya memiliki hal-hal yang diatur dengan benar sehingga dapat memancarkan ItemStyle.xsl kami <Meja> Tag di tempat yang tepat.

ItemStyle.Xsl

CATATAN: Lagi, Check in ItemStyle.xsl setelah membuat perubahan sehingga Anda melihat efek dari perubahan.

Kami memiliki dua tugas di sini:

  • Mengganti seluruh Grid template. Anda dapat menyalin/paste dari bawah.
  • Tambahkan beberapa omong kosong di luar definisi template yang memungkinkan "formatcurrency" template untuk bekerja. (Anda dapat memberitahu bahwa saya memiliki pegangan lemah XSL).

Pertama, di dekat bagian atas ItemStyle.xsl, Tambahkan baris ini:

  <!-- Beberapa omong kosong yang memungkinkan kita untuk menampilkan AS. mata uang. -->
  <Extensible Stylesheet Language:desimal-format Nama="Staf" digit="D" />

  <Extensible Stylesheet Language:template Nama="Standar" pertandingan="*" mode="itemstyle">

Catatan bahwa saya menambahkan langsung sebelum <Extensible Stylesheet Language:Nama template = "bawaan" …> definisi.

Berikutnya, kembali ke template Grid kami. Mengganti seluruh Grid template dengan kode di bawah ini. Itu adalah benar-benar berkomentar, Tapi jangan ragu untuk email saya atau meninggalkan komentar di blog saya jika Anda memiliki pertanyaan.

  <Extensible Stylesheet Language:template Nama="Grid" pertandingan="Baris[@Style = 'Grid']" mode="itemstyle">

    <!--
      ContentMain.xsl melewati CurPos dan terakhir.
      Kami menggunakan ini untuk kondisional memancarkan terbuka dan menutup <Meja> Tags.
    -->
    <Extensible Stylesheet Language:Param Nama="CurPos" />
    <Extensible Stylesheet Language:Param Nama="Terakhir" />

    <!-- Variabel berikut dimodifikasi dari ItemStyle.xsl standar -->
    <Extensible Stylesheet Language:variabel Nama="SafeImageUrl">
      <Extensible Stylesheet Language:panggilan-template Nama="OuterTemplate.GetSafeStaticUrl">
        <Extensible Stylesheet Language:dengan param Nama="UrlColumnName" Pilih="'ImageUrl'"/>
      </Extensible Stylesheet Language:panggilan-template>
    </Extensible Stylesheet Language:variabel>
    <Extensible Stylesheet Language:variabel Nama="SafeLinkUrl">
      <Extensible Stylesheet Language:panggilan-template Nama="OuterTemplate.GetSafeLink">
        <Extensible Stylesheet Language:dengan param Nama="UrlColumnName" Pilih="'LinkUrl'"/>
      </Extensible Stylesheet Language:panggilan-template>
    </Extensible Stylesheet Language:variabel>
    <Extensible Stylesheet Language:variabel Nama="DisplayTitle">
      <Extensible Stylesheet Language:panggilan-template Nama="OuterTemplate.GetTitle">
        <Extensible Stylesheet Language:dengan param Nama="Judul" Pilih="@Title"/>
        <Extensible Stylesheet Language:dengan param Nama="UrlColumnName" Pilih="'LinkUrl'"/>
      </Extensible Stylesheet Language:panggilan-template>
    </Extensible Stylesheet Language:variabel>
    <Extensible Stylesheet Language:variabel Nama="LinkTarget">
      <Extensible Stylesheet Language:Jika tes="@OpenInNewWindow = 'Benar'" >_blank</Extensible Stylesheet Language:Jika>
    </Extensible Stylesheet Language:variabel>

    <!--
      Di sini kita mendefinisikan variabel, "tableStart".  Ini berisi HTML yang kita gunakan untuk mendefinisikan pembukaan tabel serta label kolom.  Perhatikan bahwa jika CurPos = 1, ini termasuk HTML dalam CDATA tag.
      Jika tidak, ini akan menjadi kosong.

      Nilai tableStart adalah emited setiap kali ItemStyle disebut melalui ContentQueryMain.xsl.
    -->
    <Extensible Stylesheet Language:variabel Nama="tableStart">
      <Extensible Stylesheet Language:Jika tes="$CurPos = 1">
        <![CDATA[
        <perbatasan tabel = 1>
          <TR bgcolor = "biru">
            <TD><warna font = "putih"><b>Nama proyek</b></font></TD>
            <TD align = "kanan"><warna font = "putih"><b>Tanggal lengkap</b></font></TD>
            <TD align = "kanan"><warna font = "putih"><b>Anggaran</b></font></TD>
            <TD align = "kanan"><warna font = "putih"><b>Biaya sebenarnya</b></font></TD>
            <TD><warna font = "putih"><b>Keseluruhan Status</b></font></TD>
          </TR>
        ]]>
      </Extensible Stylesheet Language:Jika>
    </Extensible Stylesheet Language:variabel>

    <!--
      Variabel lain, tableEnd hanya mendefinisikan menutup meja tag.

      Seperti dengan tableStart, Hal ini selalu emited.  Inilah sebabnya mengapa nilainya ditetapkan kondisional didasarkan pada apakah kita telah telah lulus baris terakhir oleh ContentQueryMain.xsl.
    -->
    <Extensible Stylesheet Language:variabel Nama="tableEnd">
      <Extensible Stylesheet Language:Jika tes="$CurPos = $Last">
        <![CDATA[ </Meja> ]]>
      </Extensible Stylesheet Language:Jika>
    </Extensible Stylesheet Language:variabel>

    <!--
      Selalu mengeluarkan isi tableStart.  Jika hal ini tidak baris pertama yang diberikan kepada kita oleh ContentQueryMain.xsl, kemudian kami tahu nilai akan kosong.

      Menonaktifkan output melarikan diri karena ketika tableStart itu tidak kosong, ini termasuk HTML sebenarnya yang kita inginkan yang akan diberikan oleh browser.  Jika kami tidak meminta XSL parser untuk menonaktifkan output melarikan diri, ini akan menghasilkan hal-hal seperti"&lt;Meja&gt;" daripada"<Meja>".
    -->
    <Extensible Stylesheet Language:nilai dari Pilih="$tableStart" melarikan diri menonaktifkan output="Ya"/>


    <TR>
      <!--
      P:Project_x005F_x0020_Name P:Project_x005F_x0020_End_x005F_x0020_Date P:Project_x005F_x0020_Budget P:Project_x005F_x0020_Expenses P:Project_x005F_x0020_Status
      -->
      <TD>
        <Extensible Stylesheet Language:nilai dari Pilih="@Project_x005F_x0020_Name"/>
      </TD>

      <TD menyelaraskan="kanan">
        <Extensible Stylesheet Language:nilai dari Pilih="@Project_x005F_x0020_End_x005F_x0020_Date"/>
      </TD>

      <TD menyelaraskan="kanan">
        <Extensible Stylesheet Language:panggilan-template Nama="formatcurrency">
          <Extensible Stylesheet Language:dengan param Nama="nilai" 
Pilih="@Project_x005F_x0020_Budget"></Extensible Stylesheet Language:dengan param> </Extensible Stylesheet Language:panggilan-template> </TD> <TD menyelaraskan="kanan"> <Extensible Stylesheet Language:panggilan-template Nama="formatcurrency"> <Extensible Stylesheet Language:dengan param Nama="nilai" Pilih="@Project_x005F_x0020_Expenses">
</Extensible Stylesheet Language:dengan param> </Extensible Stylesheet Language:panggilan-template> </TD> <TD> <Extensible Stylesheet Language:nilai dari Pilih="@Project_x005F_x0020_Status"/> </TD> <!-- Semua berikut adalah komentar untuk memperjelas hal. Namun, membawa kembali dan hal itu menjadi <TD> untuk melihat efek. --> <!-- <div id = "linkitem" class = "barang"> <Extensible Stylesheet Language:Jika tes = "panjang string($SafeImageUrl) != 0"> <div kelas = "gambar-daerah-kiri"> <href = "{$SafeLinkUrl}" target = "{$LinkTarget}"> <img kelas = "gambar-fixed-width" src = "{$SafeImageUrl}"
Alt = "{@ImageUrlAltText}"/> </a> </div> </Extensible Stylesheet Language:Jika> <div kelas = "item tautan"> <Extensible Stylesheet Language:panggilan-template
name="OuterTemplate.CallPresenceStatusIconTemplate"/> <href = "{$SafeLinkUrl}"
target = "{$LinkTarget}" title = "{@LinkToolTip}"> <Extensible Stylesheet Language:nilai dari pilih = "$DisExtensible Stylesheet LanguageyTitle" /> </a> <div kelas = "Deskripsi"> <Extensible Stylesheet Language:nilai-dari select="@Description" /> </div> </div> </div>
--> </TR> <!-- Memancarkan menutup meja tag. Jika kami tidak berada pada baris terakhir, ini akan menjadi kosong. --> <Extensible Stylesheet Language:nilai dari Pilih="$tableEnd" melarikan diri menonaktifkan output="Ya"/> </Extensible Stylesheet Language:template> <Extensible Stylesheet Language:template Nama="formatcurrency"> <Extensible Stylesheet Language:Param Nama="nilai" Pilih="0" /> <Extensible Stylesheet Language:nilai dari Pilih='format nomor($nilai, "$DDD,DDD,DDD.DD", "staf")' /> </Extensible Stylesheet Language:template>

22 pemikiran tentang “Menampilkan konten permintaan Web bagian hasil dalam Grid / Tabel

  1. Andreas

    Aah… itu karena saya bernama gaya daftar saya berbeda dan tidak menyadari bahwa dalam ContentQueryMain.xsl itu cek untuk "gaya":

    <Extensible Stylesheet Language:Ketika test="@Style='NameOfMyStyle'">

    Dengan yang namanya itu bekerja. 🙂

    Balasan
  2. Andreas

    Itu hampir bekerja untuk saya: Saya mengelola untuk output </Meja> mengakhiri tag dengan benar, tapi tag awal hilang. Tampaknya tes = "$CurPos = 1" tidak kembali benar. Tapi mengapa?

    Balasan
  3. Anand singh Rawat

    Great posting. Paulus saya telah melakukan semua hal di atas. Aku punya pertanyaan, Bagaimana saya mencapai jumlah "TOTAL sebenarnya Expences" atau jumlah nilai dari dua kolom.

    Balasan
  4. Lisa

    Apakah Anda melakukan pekerjaan dengan menciptakan kustom ContentQueryMain dan ItemStyle xsl file? Alasan saya bertanya adalah bahwa saya tidak ingin khawatir tentang gaya saya kustom yang ditimpa dengan patch atau upgrade. Anda punya contoh? Saya sudah mencoba membuat salinan identik dari ContentQueryMain.xsl dan meng-upload salinan kustom yang baru ke Perpustakaan gaya. Ketika menempatkan referensi ke file xsl ini dalam .webpart 's MainXslLink properti, Saya mendapatkan 401 tidak diizinkan. File kustom xsl versi diterbitkan dan setiap orang mempunyai akses baca untuk itu.

    Balasan
  5. Greg Sheridan

    Hai, ini adalah posting benar-benar berguna. Aku punya itu semua bekerja, dan juga diimplementasikan Mike Brown's perubahan sehingga itu kelompok
    hasil dalam tabel dengan apa pun aku memilih sebagai parameter Group By CQWB properti.
    Saya membuat judul link juga, Jadi itu bekerja dengan baik. Aku masih memiliki satu masalah, Meskipun. Aku 'm pengelompokan hasil oleh nama situs. Di dalam tabel, kelompok mereka dengan baik, dan itu tampak hebat, tapi masih Percetakan keluar semua kelompok
    nama(dalam kasus saya nama situs) di atas tabel. Apakah ada yang tahu bagaimana untuk menyingkirkan ini?
    Terima kasih,
    Greg

    Balasan
  6. Tidak ada nama

    Nice artikel. Aku berhasil untuk memberikan tampilan default Sharepoint daftar meja saya dengan menganalisis kode sumber daftar. Berikut adalah blok HTML utama yang diperlukan agar sesuai di ItemStyle:

    <Tabel lebar = "100%" class = "ms-listviewtable" perbatasan = 0 cellspacing = 0 cellpadding = 1 dir = "None">

    <!–HEADER–>
    <Kelas TR = "ms-viewheadertr" VALIGN = ATAS>
    <TH nowrap lingkup = "col" class = "ms-vh2"><div gaya = "lebar:100%;posisi:relatif;kiri:0;Top:0;">
    <Tabel = "lebar:100%;" CtxNum = "1" tinggi = "100%" cellspacing = 1 cellpadding = 0 class = "ms-unselectedtitle">
    <TR>
    <Lebar TD = "100%" Class = "ms-vb" nowrap>
    Texte du titre ici

    </TD>
    <Gaya TD = "posisi:mutlak;">
    </TD>
    </TR>
    </MEJA></div>
    </TH>

    <!–Ulangi untuk semua sel header–>
    </TR>

    <!– Data tabel –>
    <Kelas TR = "">
    <!–Kolom data, Gunakan kode Paulus yang pertama dengan hyperlink –>
    <Kelas TD = "ms-vb2">Data di sini</TD>

    <!–Kolom kosong–>
    <Kelas TD = "ms-vb2">
    <span dir = None></rentang><
    /TD>

    <!–Kolom tanggal–>
    <Kelas TD = "ms-vb2">
    <NOBR>11/12/2008</NOBR>
    </TD>
    </TR>

    <!–***Deretan alternatif – Menggunakan variabel XSL baru yang akan memasukkan kelas alternatif yang didasarkan pada baris saat ini modulus 2–>
    <Kelas TR = "ms-bergantian">

    </TR>
    </MEJA>

    Balasan
  7. Mike Brown
    Zoltan,
    Saya bekerja pada masalah yang sama seperti Anda. Saya ingin semuanya saya ditampilkan dalam cara yang dikelompokkan daripada hanya lits. Berikut adalah bagaimana saya mencapai itu.
    ContentQueryMain.xsl
    <Extensible Stylesheet Language:Ketika test="@Style='Grid'">
    <Extensible Stylesheet Language:menerapkan template pilih = "." mode = "itemstyle">
    <Extensible Stylesheet Language:dengan param nama = "CurPos" Pilih = "$CurPosition" />
    <Extensible Stylesheet Language:dengan param nama = "terakhir" Pilih = "$LastRow" />
    <!–menambahkan bagian baru untuk lulus dalam parameter menunjukkan grup baru telah dimulai–>
    <Extensible Stylesheet Language:dengan param nama = "StartNewGroup" Select="@__begingroup" />
    </Extensible Stylesheet Language:menerapkan template>
    </Extensible Stylesheet Language:Kapan>
    ItemStyle.xsl
    Menambahkan parameter Anda
    <Extensible Stylesheet Language:Param nama = "StartNewGroup" />
    Tambahkan teks ini sebagai baris pertama dari data
    <Extensible Stylesheet Language:memilih>
    <Extensible Stylesheet Language:ketika tes = "$StartNewGroup = 'Benar'">
    <TR>
    <TD >
    <Extensible Stylesheet Language:name="OuterTemplate.GetGroupName panggilan-template">
    <Extensible Stylesheet Language:dengan param nama = "GroupName" Select="@*[Nama()= $Group]"/>
    <Extensible Stylesheet Language:dengan param nama = "GroupType" Pilih = "$GroupType" />
    </Extensible Stylesheet Language:panggilan-template>
    </TD>
    </TR>
    </Extensible Stylesheet Language:Kapan>
    <Extensible Stylesheet Language:Jika tidak>
    </Extensible Stylesheet Language:Jika tidak>
    </Extensible Stylesheet Language:memilih>
    Ini harus mengurus masalah pengelompokan Anda di grid Anda. Setiap kelompok akan bermula dengan baris baru yang menunjukkan nama grup. Dalam solusi saya saya benar-benar menambahkan kosong <TD /> data untuk indent juga jadi pengelompokan berdiri keluar jauh lebih baik.
    Site1
    datacolumn1 datacolumn2 datacolumn3 dll

    datacolumn1 datacolumn2 datacolumn3 dll
    Site2
    datacolumn1 datacolumn2 datacolumn3 dll
    Site3

    datacolumn1 datacolumn2 datacolumn3 dll

    datacolumn1 datacolumn2 datacolumn3 dll
    dll.
    Balasan
  8. Zoltan
    Halo Paulus,
    Thanks for the pos, Aku berhasil mengatur hasil query saya di grid, sangat membantu. Namun, Aku harus pergi lebih jauh dan kelompok hasil saya berdasarkan situs. Pada saat, nama situs yang terdaftar pertama, dan kemudian ada hanya satu grid besar mengumpulkan semua baris dari situs yang berbeda. Sesuatu seperti ini:
    Nama site1
    Nama Site2
    Data dalam grid untuk semua situs
    Setiap gagasan tentang apa yang harus memodifikasi untuk mendapatkan data saya sebagai berikut:
    Nama site1
    Data dalam grid untuk Site1
    Nama Site2
    Data dalam grid untuk Site2
    Thanks in advance,
    Zoltan
    Balasan
  9. Pierre Joubert
    Posting fantastis, memecahkan masalah saya aku punya.
    Masalah saya hanya menampilkan bidang AssignedTo, Cara mengkonfigurasi dengan "pengguna" tipe Field dan impor webpart kemudian menampilkan error berikut:
    "Ada kesalahan mengambil data untuk menampilkan di bagian Web."
    Saya telah mencoba menggunakan semua bidang mungkin jenis, dengan sesuatu yang lain bahwa "pengguna" itu tidak menampilkan kesalahan, Tapi itu tidak menampilkan apa-apa di bidang. Jadi aku mengasumsikan tipe field pengguna benar, Jadi saya harus kehilangan suasana di suatu tempat.
    Ide-ide ini?
    Salam
    Pierre
    Balasan
  10. Charftong
    Great posting!!! Sangat sangat membantu.
    Cepat pertanyaan, Apakah Anda melakukan sesuatu pekerjaan pada menampilkan bidang AssignedTo atau ModifiedBy dengan kehadiran? Untuk beberapa alasan, setiap kali saya mencoba untuk dipslay bidang ditugaskan untuk di CQWP, itu selalu menampilkan dengan sebagai contoh "203;#Charf Tong". Saya tidak dapat menemukan jalan di sekitar ini.
    Balasan
  11. Jennifer Davis
    Paul
    Great artikel, Terima kasih. Saya melakukan sesuatu yang sangat mirip tetapi ingin menampilkan link ke lokasi proyek daripada item dalam daftar. Misalnya, Kami punya 25 lokasi proyek tingkat atas dan masing-masing berisi daftar dengan jenis konten. Ini adalah nama proyek, Divisi, Deskripsi. Saya ingin menggunakan bagian web permintaan konten untuk menarik data ini dan telah berhasil kecuali bahwa secara default URL membawaku ke entri item dalam daftar dan saya benar-benar membutuhkannya untuk membawa saya ke lokasi proyek. Dapatkah Anda memberi saya saran?
    Terima kasih
    Jen
    Balasan
  12. Paul Galvin
    Kieren,
    Saya selalu menggunakan visual studio untuk mengedit XSL. Menyediakan kode warna dan juga memiliki dukungan intellisense yang baik.
    –Paul
    Balasan
  13. Kieran wrote:

    Hi Paulus,

    Ketika bekerja dengan bagian web xml xsl dan konten query, Apakah Anda menemukan cara yang baik untuk memformat xslt Anda? Mencoba untuk membuat perubahan dan menguji desain ini membuktikan rasa sakit tepat di ** hanya menggunakan editor teks…

    Yang Terbaik

    Balasan
  14. Michael Dipay
    Mengenai masalah saya sedang mengalami waktu terakhir mana itu tidak menampilkan gambar dari tampilan grid tetapi sebaliknya menampilkan teks (https://myweb.com/Marketing/images/icn-order.gif,). Aku berhasil mengatasinya dengan bantuan desain SharePoint dengan menciptakan tampilan kustom dan memilih kolom kustom yang saya ingin menampilkan. Saya menemukan bahwa jenis kolom gambar ditampilkan sebagai URL(koma) (misalnya. https://myweb.com/Marketing/images/icn-order.gif,). Format yang saat ini adalah teks, Jadi aku harus mengubahnya untuk gambar dari xsl Umum:nilai dari tugas-> Format gambar. Perubahan ini tampilan gambar kustom yang aku ingin menunjukkan. Aku menyalin kode untuk menampilkan gambar ( <img perbatasan ="0" src = "{substring-sebelum(@IcnOrder, ‘, ‘)}" /> ) Dan dalam ItemStyle.xsl file saya harus mengubah, @PICTURECOLUMNNAME ke kode <img perbatasan ="0" src = "{substring-sebelum(@IcnOrder, ‘, ‘)}" /> . Kemudian menyimpannya. Sekarang saya meja grid hasil untuk menunjukkan teks serta gambar kustom jenis kolom.
    Balasan
  15. Helen
    Hi Paulus,
    Terima kasih untuk artikel besar!
    Anda disebutkan format bersyarat – "Anda juga dapat meletakkan dalam format bersyarat, seperti menampilkan proyek-proyek yang telah melebihi anggaran mereka merah." Apakah Anda kebetulan memiliki contoh kode untuk itu?
    Terima kasih lagi!
    Helen
    Balasan
  16. Michael Dipay
    Hi Paulus,
    Ini adalah artikel yang hebat dan mampu menghasilkan hasil yang sama seperti yang diharapkan. Saya memiliki persyaratan untuk menampilkan gambar dalam grid sebagai salah satu kolom. Tidak menampilkan gambar pada grid tetapi sebaliknya menampilkan url ke gambar dengan (,) koma pada akhir.
    (misalnya. https://myweb.com/Marketing/images/icn-order.gif, )
    Saya harus menggunakan gambar atau gambar dalam tipe Field CommonViewFields? (misalnya. InternalColumnName, Gambar)
    Terima kasih,
    Mike
    Balasan
  17. Saji Ijiyemi

    Posting Anda adalah persis apa yang saya sedang mencari. Namun, Saya tidak bisa mendapatkannya bekerja.

    Aku punya dokumen yang disimpan di berbagai doc. Perpustakaan tetapi diklasifikasikan menggunakan kolom kustom kelas (pilihan: 1 atau 2. Saya ingin menggunakan CQWP untuk menunjukkan dokumen-dokumen ini berdasarkan kelasnya.
    Saya mampu untuk menambahkan yang CQWP, ekspor ke SPD, mengkonfigurasi itemStyle.xls untuk menunjukkan fileds kustom dalam tampilan daftar. Namun, Saya tidak bisa berhasil menerapkan apa yang Anda jelaskan di sini.

    Ini adalah kolom yang saya ingin menunjukkan di CQWP saya:

    Jenis file (untuk menunjukkan ikon)
    File Title
    Tanggal terakhir diubah
    Diubah oleh yang
    Memeriksa untuk
    Memeriksa dalam komentar

    Saya saat ini memiliki hasil dalam format daftar. Bagaimana cara mengubahnya ke talble format.

    Terima kasih.

    Saji

    Balasan

Tinggalkan balasan

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai *