Ég var að gera sumir rannsókn fyrir einhvern dag um list.asmx vefur þjónustu sem hluta af SharePoint 2010 (og fyrr). Hún var fær til fá the listi atriði á the rót mappa (þ.mt nöfn undir-möppur), en gat ekki fá atriði í staðinn fyrir einhvern-mappa. Ég gerði nokkrar að leita í kring um internets og það er furðu algeng spurning. En, Ég gat ekki fengið góða svar við einfaldri spurningu, "Ef ég veit að möppu, hvernig fæ ég þau atriði í möppunni?" Til að vera heiðarlegur, Ég vissi ekki að reyna allt sem erfitt þar sem ég hef langað til að reikna þetta einn út á mitt eigið um stund .
Til að setja þetta upp, Ég bjó til síðuna sem heitir "Blogging Atburðarás" og sérsniðin listi sem heitir "Custom Listi með Sub möppur". Ég skapaði þá möppur sem heita:
- Ár 2005
- Ár 2006
- Ár 2007
Ég bætti nokkrum hlutum við möppu "ársins 2006". Þetta er það sem það lítur út eins og:
Vinur minn er ekki að skrifa C # kóða heldur að nota Java, svo SOAP umslag var það sem hún þarf í raun. Til að fá sem, Ég skrifaði smá jQuery og síðan notað Fiddler til að fá raunverulegan HTTP samtal.
Hér er viðeigandi jQuery (Ég afrita kóðann fyrir neðan ef þú vilt afrita / líma):
Þeir fyrstu Lykilatriðið er að fela bæði <queryOptions> og <QueryOptions> hnút. Annað lykilatriði er að <Mappa> hnútur er slóðin sem viðskiptavinurinn hefur aðgang.
Það kann að vera aðrar leiðir til að fá þetta, en þetta virkaði vel fyrir mig þegar að nota jQuery.
Hér er sápa umslag fyrir ofan:
<soapenv:Umslag xmlns:soapenv =’HTTP://schemas.xmlsoap.org / sápu / umslag /’>
<soapenv:Body>
<GetListItems xmlns =’HTTP://schemas.microsoft.com / SharePoint / sápu /’>
<listname>Custom Listi með Sub Mappa</listname>
<viewFields>
<ViewFields>
<FieldRef Name = 'Titill’ />
<FieldRef Name = 'EncodedAbsUrl’ />
</ViewFields>
</viewFields>
<queryOptions>
<QueryOptions>
<Mappa>HTTP://demoserver1/Blogging Atburðarás / listar / Custom List með Sub Mappa / árið 2006</Mappa>
</QueryOptions>
</queryOptions>
</GetListItems>
</soapenv:Body>
</soapenv:Umslag>
A einhver fjöldi af dæmum og umræðu um þetta leiddi mig til að trúa því að allt sem ég þarf var <QueryOptions> og tilgreina heiti fyrir möppuna. Fyrir mig, Ég þarf að bæði vefja það inni <queryOptions> og tilgreina fullgildur vefslóð fyrir að <Mappa> hnút.
Hér er jQuery AJAX skipulag:
$(skjal).tilbúinn(virka() {
var soapEnv =
"<soapenv:Umslag xmlns:soapenv =’HTTP://schemas.xmlsoap.org / sápu / umslag /’> \
<soapenv:Body> \
<GetListItems xmlns =’HTTP://schemas.microsoft.com / SharePoint / sápu /’> \
<listname>Custom Listi með Sub Mappa</listname> \
<viewFields> \
<ViewFields> \
<FieldRef Name = 'Titill’ /> \
<FieldRef Name = 'EncodedAbsUrl’ /> \
</ViewFields> \
</viewFields> \
<queryOptions> \
<QueryOptions> \
<Mappa>http://demoserver1/Blogging Atburðarás / listar / Custom List með Sub Mappa / árið 2006</Mappa> \
</QueryOptions> \
</queryOptions> \
</GetListItems> \
</soapenv:Body> \
</soapenv:Umslag>";
</enda>
Gerast áskrifandi að bloggið mitt.
Fylgdu mér á Twitter á http://www.twitter.com/pagalvin