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 .
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:
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):
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>
Mengikuti aku di Twitter http://www.twitter.com/pagalvin
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.
Ini adalah sangat lama post/komen jadi maaf kerana tidak menjawab. Saya menganggap anda panjang sejak tahu bagaimana untuk meneruskan.
Barang baik! Terima kasih.
Anda juga boleh menggunakan pilihan RecursiveAll untuk secara automatik susur turun struktur folder (dari peringkat akar).
ok, kelihatan seperti ia dilucutkan keluar xml yang… hanya menggantikan paun ayat di bawah dengan chevrons.
#queryOptions #
#QueryOptions #
#Skop ViewAttributes = 'RecursiveAll' / #
#/QueryOptions #
#/queryOptions #
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.
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…