Lists.asmx, GetListItems dan folder

Saya telah melakukan beberapa kajian untuk orang hari ini di sekitar perkhidmatan web list.asmx disediakan sebagai sebahagian daripada SharePoint 2010 (dan lebih awal).  Dia mampu untuk mendapatkan barangan pada senarai folder akar (termasuk nama-nama sub-folder), tetapi tidak boleh mendapatkan item dalam sub-folder.  Saya ada melihat di sekeliling di internets dan ia adalah satu soalan yang menghairankan biasa.  Namun, Saya tidak boleh mendapatkan jawapan yang baik untuk soalan mudah, "Jika saya tahu folder, bagaimana saya boleh mendapatkan barangan di dalam folder?"  Secara jujur, Saya tidak cuba semua yang sukar kerana saya mahu untuk memikirkan satu ini keluar pada saya sendiri untuk seketika Smile.

Untuk menetapkan ini sehingga, Saya telah mencipta laman web yang bernama "Senario Blogging" dan senarai adat dinamakan "Senarai Custom dengan Sub Folder".  Saya kemudian mencipta folder bernama:

  • Tahun 2005
  • Tahun 2006
  • Tahun 2007

Saya menambah beberapa item ke folder "Tahun 2006".  Ini adalah apa yang kelihatan seperti:

image

Kawan saya tidak menulis kod C # tetapi sebaliknya menggunakan Java, supaya sampul surat SOAP adalah apa yang dia benar-benar diperlukan.  Untuk mendapatkan, Saya menulis sedikit jQuery dan kemudian digunakan pemain biola untuk mendapatkan HTTP perbualan sebenar.

Berikut adalah jQuery yang berkaitan (Saya disalin kod ke bawah jika anda mahu menyalin / menampal):

image

Mereka kunci pertama adalah untuk memasukkan kedua-dua <queryOptions> dan <QueryOptions> nod.  Kunci kedua adalah bahawa <Folder> nod adalah URL yang pelanggan mempunyai akses.

Mungkin ada cara lain untuk mendapatkan ini, tetapi ini berjalan dengan baik bagi saya apabila menggunakan jQuery.

Berikut adalah sampul surat SOAP untuk di atas:

<soapenv:Xmlns sampul surat:soapenv =’http://schemas.xmlsoap.org / sabun / sampul surat /’>                
  <soapenv:Badan>
    <GetListItems xmlns =’
http://schemas.microsoft.com / SharePoint / sabun /’>
      <listName>Senarai adat dengan Sub Folder</listName>
      <viewFields>  
        <ViewFields>
          <FieldRef Nama = 'Tajuk’ />
          <FieldRef Nama = 'EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Folder>
http://demoserver1/Blogging Senario / senarai / Senarai Custom dengan Sub Folder / Tahun 2006</Folder>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Badan>
</soapenv:Sampul surat>

Banyak contoh-contoh dan perbincangan sekitar ini membawa saya untuk mempercayai bahawa semua saya perlukan adalah <QueryOptions> dan berikan satu nama folder.  Bagi saya, Saya perlu kedua-dua balut ia di dalam <queryOptions> serta menentukan URL yang berkelayakan sepenuhnya untuk <Folder> nod.

Berikut adalah persediaan AJAX jQuery:

$(dokumen).bersedia(fungsi() {
       var soapEnv =
           "<soapenv:Xmlns sampul surat:soapenv =’http://schemas.xmlsoap.org / sabun / sampul surat /’> \
               <soapenv:Badan> \
                    <GetListItems xmlns =’http://schemas.microsoft.com / SharePoint / sabun /’> \
                       <listName>Senarai adat dengan Sub Folder</listName> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef Nama = 'Tajuk’ /> \
                              <FieldRef Nama = 'EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Folder>http://demoserver1/Blogging Senario / senarai / Senarai Custom dengan Sub Folder / Tahun 2006</Folder> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Badan> \
           </soapenv:Sampul surat>";

</akhir>

Langgan ke blog saya.

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

6 pemikiran untuk "Lists.asmx, GetListItems dan folder

  1. Daniel

    Hi

    Saya cuba untuk memaparkan dokumen-dokumen di bawah folder tertentu menggunakan SPD yang 2010 DataSource GetListItems

    Apabila saya menyambung kepada perkhidmatan web saya dan masukkan guid untuk Perpustakaan dokumen
    Saya boleh mengubah suai QueryOptions tersebut dan masukkan sekeping berikut CAML
    TrainingCompanyX pematuhan.

    Hanya ini tidak mengembalikan sebarang keputusan – mengeluarkan QueryOptions parameter kembali semua dokumen-dokumen di Perpustakaan dokumen punca….

    Saya melihat melalui beberapa jenis lihat parameter dan termasuk view guid.

    Balas
    1. Paul Galvin Post pengarang

      Ini adalah sangat lama post/komen jadi maaf kerana tidak menjawab. Saya menganggap anda panjang sejak tahu bagaimana untuk meneruskan.

      Balas
  2. Bob Bolton

    ok, kelihatan seperti ia dilucutkan keluar xml yang… hanya menggantikan paun ayat di bawah dengan chevrons.

    #queryOptions #
    #QueryOptions #
    #Skop ViewAttributes = 'RecursiveAll' / #
    #/QueryOptions #
    #/queryOptions #

    Balas
  3. Doug

    Thanks sekumpulan untuk jawatan ini, Paul. Saya telah cuba untuk mengambil GetListItems melalui ColdFusion cfhttp, dan tidak boleh mendapatkan hak sampul surat. Akhirnya terserempak pos ini, dan contoh anda bekerja sempurna. Terima kasih sekali lagi.

    Balas
  4. Doug

    BTW – adakah anda tahu satu sumber yang menyenaraikan semua sampul surat sabun yang betul? Satu untuk Item GetList diterbitkan pada microsoft.com tidak sepadan anda di sini…

    Balas

Tinggalkan Jawapan kepada Paul Galvin Batal reply

alamat e-mel anda tidak akan diterbitkan. Ruangan yang diperlukan ditanda *