Etiket Arşivleri: SharePoint Web servisleri

Lists.asmx, GetListItems ve klasörler

Birinin etrafında bugün SharePoint bir parçası olarak sağlanan list.asmx web hizmeti için bir araştırma yaptığını 2010 (ve önceki sürümleri).  O was güçlü-e doğru kök klasörde liste öğelerini almak için (alt klasörleri adları da dahil olmak üzere), öğeleri alt klasörlere alamadım ama.  Bazı Internets üzerinde etrafa yaptı ve şaşırtıcı ortak bir soru.  Henüz, Basit bir soru için iyi bir cevap alamadım., "Ben klasörü biliyorsanız, klasördeki öğelerin nasıl alabilirim?”  Dürüst olmak gerekirse, Ben kendi dışarı bu bir şekil bir süre istedim çünkü bu zor deneyin vermedi Gülümseme.

Bunu ayarlamak için, "Bloglama senaryoları" adlı bir site ve "Özel liste ile alt klasörler" adlı özel bir liste oluşturdum.  Sonra adlı klasör oluşturdu:

  • Yıl 2005
  • Yıl 2006
  • Yıl 2007

Ben birkaç öğe "2006 yılı" klasöre eklendi.  Ne gibi görünüyor olmasıdır.:

image

Arkadaşım değil ama C# kodu yazmak yerine Java yazılımını kullanma, Yani o gerçekten gerekli soap zarfının oldu.  Almak için, JQuery biraz yazdı ve fiddler kullanılmış gerçek http oturumu almak.

İşte ilgili jQuery (Kopyala/Yapıştır istiyorsanız kodu aşağı aşağıda kopyaladığım):

image

Onlar ilk anahtarıdır hem de içerecek şekilde bir <queryOptions> ve <QueryOptions> düğüm.  Bu ikinci anahtarıdır <Klasör> düğüm istemci erişimi olan bir url..

Bu almak için başka yollar olabilir, ama bu amele su kuyusu için beni ne zaman jQuery kullanarak.

İşte yukarıdaki için soap Zarfı:

<soapenv:Zarf xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/envelope/’>                
  <soapenv:Vücut>
    <GetListItems xmlns =’
http://schemas.microsoft.com/SharePoint/SOAP/’>
      <listName>Alt klasörler içeren özel bir liste</listName>
      <viewFields>  
        <ViewFields>
          <FIELDREF Name =' başlığı’ />
          <FIELDREF Name ='EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Klasör>
http://demoserver1/blog Senaryo/listeleri/özel liste ile alt klasörler/yıl 2006</Klasör>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Vücut>
</soapenv:Zarf>

Örnekler ve bu tartışma çok bana tüm ihtiyacım olduğuna inanmak yol açtı <QueryOptions> ve bir klasör adı belirtin.  Benim için, [NULL]'Sarmak hem de içine <queryOptions> hem de tam bir url belirtin <Klasör> düğüm.

İşte jQuery ajax kurulumu:

$(Belge).hazır(işlevi() {
       var soapEnv =
           "<soapenv:Zarf xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/envelope/’> \
               <soapenv:Vücut> \
                    <GetListItems xmlns =’http://schemas.microsoft.com/SharePoint/SOAP/’> \
                       <listName>Alt klasörler içeren özel bir liste</listName> \
                       <viewFields> \
                           <ViewFields> \
                              <FIELDREF Name =' başlığı’ /> \
                              <FIELDREF Name ='EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Klasör>http://demoserver1/Blogging Senaryo/listeleri/özel liste ile alt klasörler/yıl 2006</Klasör> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Vücut> \
           </soapenv:Zarf>";

</sonunda>

Benim blog abone.

Heyecan beni izleyin http://www.twitter.com/pagalvin