Am făcut unele de cercetare pentru cineva astăzi în jurul web list.asmx serviciului furnizat ca parte din SharePoint 2010 (şi mai devreme). Ea a fost în măsură pentru a obţine elementele de listă la folderul rădăcină (inclusiv numele subfolderelor), dar nu a putut obţine elemente în sub-pliant. Am făcut unele privire around pe Internet şi este o chestiune de surprinzător de comune. Încă, Nu am putut ajunge un răspuns bun la întrebarea simplă, "dacă ştiu folderul, cum a face I a lua elementele în folderul?” Pentru a fi sincer, Nu încerc toate că greu deoarece mi-am dorit pentru a figura acest una pe propria mea pentru un timp .
Pentru a parametriza acest lucru, Am creat un site numit "Blogging-ul scenarii" şi o listă particularizată numit "Lista cu Sub foldere personalizate". Apoi am creat foldere numit:
Am adăugat câteva elemente în folderul "Anul 2006". Aceasta este ceea ce pare ca:
Prietenul meu nu este scris în C# cod, dar mai degrabă folosire Java, Deci plicul SĂPUN a fost ceea ce ea într-adevăr nevoie. Pentru a obţine că, Am scris un pic jQuery şi apoi folosite Scripcarul pentru a obţine conversaţie reale HTTP.
Aici este jQuery relevante (Am copiat codul în jos mai jos dacă doriţi să copiaţi/lipiţi):
Au prima cheie este de a include atât un <queryOptions> şi <QueryOptions> nod. A doua cheie este că <Folder> nodul este un URL la care clientul are acces.
Pot exista alte modalităţi de a obţine acest lucru, dar aceasta a lucrat bine pentru mine când folosind jQuery.
Aici este plicul SĂPUN pentru cele de mai sus:
<soapenv:Plic xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/envelope/’>
<soapenv:Organism>
<GetListItems xmlns =’http://schemas.Microsoft.com/SharePoint/SOAP/’>
<listName>Lista particularizată cu subdosarele</listName>
<viewFields>
<ViewFields>
<Numele FieldRef =' titlu’ />
<Numele FieldRef ='EncodedAbsUrl’ />
</ViewFields>
</viewFields>
<queryOptions>
<QueryOptions>
<Folder>http://demoserver1/blogging-ul Scenarii/liste/particularizat lista cu Sub foldere/anul 2006</Folder>
</QueryOptions>
</queryOptions>
</GetListItems>
</soapenv:Organism>
</soapenv:Plic>
O mulţime de exemple şi discuţii în jurul acest lucru a condus-mi să cred că tot ce am nevoie a fost <QueryOptions> şi specificaţi un nume de folder. Pentru mine, I nevoie atât wrap-o în interiorul <queryOptions> precum şi specificaţi un URL-ul complet pentru <Folder> nod.
Iată de configurare de AJAX jQuery:
$(document).gata(funcţia() {
var soapEnv =
"<soapenv:Plic xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/envelope/’> \
<soapenv:Organism> \
<GetListItems xmlns =’http://schemas.Microsoft.com/SharePoint/SOAP/’> \
<listName>Lista particularizată cu subdosarele</listName> \
<viewFields> \
<ViewFields> \
<Numele FieldRef =' titlu’ /> \
<Numele FieldRef ='EncodedAbsUrl’ /> \
</ViewFields> \
</viewFields> \
<queryOptions> \
<QueryOptions> \
<Folder>http://demoserver1/Blogging Scenarii/liste/particularizat lista cu Sub foldere/anul 2006</Folder> \
</QueryOptions> \
</queryOptions> \
</GetListItems> \
</soapenv:Organism> \
</soapenv:Plic>";
</scop>
Aboneaza-te la blog-ul meu.
Urmaţi-mă pe Twitter, la http://www.twitter.com/pagalvin