Címkearchívumok: SharePoint Web Services

Lists.asmx, GetListItems és a mappák

Csinálok néhány kutatás valaki ma körül a list.asmx webszolgáltatást, SharePoint részeként 2010 (és a korábbi).  Ő volt képes-hoz kap a lista elemeit a gyökérmappában (beleértve a tengeralattjáró-tartók nevei), de nem tudott kap az elemek tengeralattjáró-tartók-ban.  Csináltam néhány látszó körül a a internets, és meglepően közös kérdés.  Még, Tudtam, hogy egy jó az egyszerű kérdésre választ, "ha tudom, hogy a mappa, Hogyan jutok a cikkeket a mappában?”  Hogy őszinte legyek, Nem próbálom minden, amit kemény óta már akartam ábra, ez egy ki a saját egy darabig Mosoly.

Ennek beállításához, Létrehoztam egy webhely "Forgatókönyvek Blogging" nevű és „egyéni lista a Sub mappák"nevű egyéni lista.  Majd hozott létre nevű mappák:

  • Év 2005
  • Év 2006
  • Év 2007

Én hozzáadott néhány elem "2006-os évre" mappába.  Ez az, amit úgy néz ki, mint:

image

A barátom nem C# kód írása, de inkább a Java használata, így a SOAP-boríték volt mire ő igazán szükség.  -Hoz kap amit, Írtam egy kicsit a jQuery, és fiddler segítségével kap a tényleges HTTP-beszélgetés.

Itt van a megfelelő jQuery (Másoltam a kód le alul ha ön akar-hoz másol/tészta):

image

Azok első kulcsa tartalmazza mind a <queryOptions> és <QueryOptions> csomópont.  A második kulcsot, hogy a <Mappa> csomópont egy URL-címet, amelyhez az ügyfél hozzáfér.

Előfordulhat, hogy más ways-hoz kap ez, de ez munkás jól értem, amikor segítségével jQuery.

Itt van részére a fenti SOAP-boríték:

<soapenv:Boríték xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/Envelope/’>                
  <soapenv:Szerv>
    <GetListItems xmlns =’
http://schemas.microsoft.com/SharePoint/SOAP/’>
      <listName>Egyéni lista Sub-mappákkal</listName>
      <viewFields>  
        <ViewFields>
          <A FieldRef neve = "cím’ />
          <A FieldRef neve ='EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Mappa>
http://demoserver1 és a blogírás Sub mappák/év 2006 forgatókönyvek/listák/egyéni lista</Mappa>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Szerv>
</soapenv:Boríték>

Sok példák és körül ez a vita vezetett, azt hinni, hogy minden szükségem volt <QueryOptions> gombra, és adja meg a mappa nevét.  Nekem, Azt kell mindkét betakar ez belsejében <queryOptions> valamint egy teljesen minősített URL-adja meg a <Mappa> csomópont.

Itt van a jQuery AJAX-telepítő:

$(dokumentum).kész(függvény() {
       var soapEnv =
           "<soapenv:Boríték xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/Envelope/’> \
               <soapenv:Szerv> \
                    <GetListItems xmlns =’http://schemas.microsoft.com/SharePoint/SOAP/’> \
                       <listName>Egyéni lista Sub-mappákkal</listName> \
                       <viewFields> \
                           <ViewFields> \
                              <A FieldRef neve = "cím’ /> \
                              <A FieldRef neve ='EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Mappa>http://demoserver1/Blogging Sub mappák/év 2006 forgatókönyvek/listák/egyéni lista</Mappa> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Szerv> \
           </soapenv:Boríték>";

</vége>

Subscribe to my blog.

Kövesse nekem Twitter http://www.twitter.com/pagalvin