Я рабіў некаторыя даследаванні для каго-то сёння каля службу list.asmx вэб падаюцца як частка SharePoint 2010 (і больш раннія версіі). Яна была ў стане атрымаць спіс элементаў у каранёвай тэчцы (у тым ліку імёны подпапок), але не мог атрымаць дэталі ў падтэчку. Я зрабіў некаторыя азіраючыся на інтэрнэт, і гэта дзіўна агульны пытанне. Яшчэ, Я не мог атрымаць добры адказ на простае пытанне, "Калі я ведаю, што папка, як я магу атрымаць элементы ў тэчцы?" Каб быць сумленным, Я не спрабаваў ўсё, што цяжка, так як я хацеў высветліць гэта самастойна на некаторы час .
Каб рэалізаваць гэтую магчымасць, Я стварыў сайт пад назвай "Блогі Сцэнарыі» і карыстальніцкі спіс пад назвай "Асаблівы спіс з ўкладзеных тэчак". Затым я стварыў тэчкі з назвамі:
- Год 2005
- Год 2006
- Год 2007
Я дадаў некалькі пунктаў у тэчку «Год 2006». Гэта, як ён выглядае:
Мой сябар не піша кода C #, а з дапамогай Java, так SOAP канверце было тое, што яна сапраўды неабходная. Для атрымання гэтага, Я напісаў трохі JQuery і затым выкарыстаў скрыпача, каб атрымаць фактычнае размове HTTP.
Вось адпаведны JQuery (Я скапіяваў код унізе, калі вы хочаце скапіяваць / ўставіць):
Яны першы ключ павінен ўключаць <queryOptions> і <QueryOptions> вузла. Другі ключ з'яўляецца тое, што <Папка> вузел з'яўляецца URL, да якіх кліент мае доступ.
Там могуць быць і іншыя спосабы, каб атрымаць гэтую, але гэта працуе добра для мяне пры выкарыстанні JQuery.
Вось SOAP канверт для дадзеных:
<soapenv:Канверт XMLNS:soapenv =’HTTP://schemas.xmlsoap.org / мыла / канверт /’>
<soapenv:Цела>
<GetListItems XMLNS =’HTTP://schemas.microsoft.com / SharePoint / мыла /’>
<Лісцяны>Карыстацкі спіс з ўкладзеных тэчак</Лісцяны>
<ViewFields>
<ViewFields>
<FieldRef NAME = 'Назва’ />
<FieldRef NAME = 'EncodedAbsUrl’ />
</ViewFields>
</ViewFields>
<queryOptions>
<QueryOptions>
<Папка>HTTP://demoserver1/Blogging Сцэнарыі / Спісы / Карыстацкі спіс ўкладзеных тэчак з / Год выпуску: 2006</Папка>
</QueryOptions>
</queryOptions>
</GetListItems>
</soapenv:Цела>
</soapenv:Канверт>
Шмат прыкладаў і абмеркавання вакол гэтага прывяло мяне да думкі, што ўсё што мне трэба было <QueryOptions> і пакажыце імя тэчкі. Для мяне, Мне трэба як апрацоўваць яго ў <queryOptions> а таксама пазначыць поўнае URL для <Папка> вузел.
Вось JQuery AJAX ўстаноўкі:
$(дакумент).гатовы(функцыя() {
быў soapEnv =
"<soapenv:Канверт XMLNS:soapenv =’HTTP://schemas.xmlsoap.org / мыла / канверт /’> \
<soapenv:Цела> \
<GetListItems XMLNS =’HTTP://schemas.microsoft.com / SharePoint / мыла /’> \
<Лісцяны>Карыстацкі спіс з ўкладзеных тэчак</Лісцяны> \
<ViewFields> \
<ViewFields> \
<FieldRef NAME = 'Назва’ /> \
<FieldRef NAME = 'EncodedAbsUrl’ /> \
</ViewFields> \
</ViewFields> \
<queryOptions> \
<QueryOptions> \
<Папка>http://demoserver1/Blogging Сцэнарыі / Спісы / Карыстацкі спіс ўкладзеных тэчак з / Год выпуску: 2006</Папка> \
</QueryOptions> \
</queryOptions> \
</GetListItems> \
</soapenv:Цела> \
</soapenv:Канверт>";
</канец>
Выконвайце за мной на Twitter у http://www.twitter.com/pagalvin