Tag Archives: SharePoint webových služieb

Lists.asmx, GetListItems a priečinkov

Bol som robiť nejaké výskum pre niekoho dnes okolo list.asmx webovej služby poskytované ako súčasť SharePoint 2010 (a staršie).  Ona sa podarilo získať zoznam položiek v hlavnom priečinku (vrátane názvov podpriečinkov), ale nemohol dostať položky v podpriečinkov.  Som urobil niektoré pozrieme na internetové a je prekvapivo spoločná otázka.  Ešte, Nemohol som sa dostať dobrú odpoveď na jednoduchú otázku, „pokiaľ viem, aby sa priečinok, ako sa dostať položky v priečinku?”  Ak chcete byť úprimný, Aj vyskúšať tvrdo všetko, pretože som chcel obrázok, tohle sa sám na chvíľu úsmev.

Nastavenie, Som vytvoril stránky s názvom "Blogovanie scenáre" a vlastný zoznam s názvom "Vlastný zoznam s Sub Folders".  Potom som vytvoril priečinky s názvom:

  • Rok 2005
  • Rok 2006
  • Rok 2007

Som pridal niekoľko položiek do priečinka „rok 2006".  To je to, čo vyzerá ako:

image

Môj priateľ nie je písania kódu C#, ale skôr pomocou Java, Obálka SOAP tak bol, čo ona naozaj potrebné.  Tú, Som napísal bitovým jQuery a potom použiť fiddler získať skutočný rozhovor HTTP.

Tu je relevantné jQuery (I skopíroval kód nadol pod Ak chcete kopírovať/vložiť):

image

Ich prvý kľúč je zahrnúť aj <queryOptions> a <QueryOptions> uzol.  Druhý kľúč je, že <Priečinok> uzol je URL, na ktorú má klient prístup.

Môžu existovať iné spôsoby, ako si to, ale to funguje dobre pre mňa, keď pomocou jQuery.

Tu je Obálka SOAP pre vyššie uvedené:

<soapenv:Obálka xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/Envelope/’>                
  <soapenv:Orgán>
    <GetListItems xmlns =’
http://schemas.Microsoft.com/SharePoint/SOAP/’>
      <listnate>Vlastný zoznam s priečinkami Sub</listnate>
      <viewFields>  
        <ViewFields>
          <Názov FieldRef = "hlava’ />
          <Názov FieldRef = "EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Priečinok>
http://demoserver1/blogovanie Scenáre, zoznamy alebo vlastné zoznam s Sub Folders za rok 2006</Priečinok>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Orgán>
</soapenv:Obálka>

Veľa príkladov a diskusie okolo to viedol ma domnievať sa, že všetko, čo potrebujete bol <QueryOptions> a zadajte názov priečinka.  Pre mňa, I potrebné pre obe zabaliť vnútri <queryOptions> rovnako ako zadajte úplnú adresu URL <Priečinok> uzol.

Tu je nastavenie AJAX jQuery:

$(dokument).pripravený(Funkcia() {
       var soapEnv =
           "<soapenv:Obálka xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/Envelope/’> \
               <soapenv:Orgán> \
                    <GetListItems xmlns =’http://schemas.Microsoft.com/SharePoint/SOAP/’> \
                       <listnate>Vlastný zoznam s priečinkami Sub</listnate> \
                       <viewFields> \
                           <ViewFields> \
                              <Názov FieldRef = "hlava’ /> \
                              <Názov FieldRef = "EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Priečinok>http://demoserver1/Blogging Scenáre, zoznamy alebo vlastné zoznam s Sub Folders za rok 2006</Priečinok> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Orgán> \
           </soapenv:Obálka>";

</koniec>

Vyberajte môj blog.

Nasledujte ma na stebėtų na http://www.twitter.com/pagalvin