Tag Archives: SharePoint уеб услуги

Lists.asmx, GetListItems и папки

Аз правя няколко изследвания на някой днес около list.asmx уеб услуга, предоставени като част от SharePoint 2010 (и по-рано).  Тя е в състояние да получи елементите от списъка в главната папка (включително имената на подпапките), но не можа да се получи елементите в подпапките.  Направих някои поглед по internets и това е изненадващо общ въпрос.  Още, Не мога да получа добра отговорът на прост въпрос, "Ако знам, че папката, Как да получа елементите в папката?”  За да бъда честен, Аз не опитайте всички усърдно, тъй като съм исках да фигура, тази комбинация, на моята собствена за известно време Усмивка.

За да зададете това като настройка, Създадох даден сайт, наречена "Сценарии за Blogging" и списък по избор, наречена "Потребителски списък с последващо папки".  След това създадох папки, наречени:

  • Година 2005
  • Година 2006
  • Година 2007

Добавих няколко елементи в папката "2006 година".  Ето как изглежда той:

image

Моят приятел не писане C# код а по-скоро използване на Java, така че САПУН плика е това, което тя наистина необходимо.  За да получите, I пише малко jQuery и използва fiddler, за да получите действителната HTTP разговор.

Ето съответните jQuery (Аз копиран кода под ако искате да копирате/поставяте):

image

Те първият ключ е да включат и двете <queryOptions> и <QueryOptions> възел.  Вторият ключ е, че <Папка> възел е URL АДРЕС, към която клиентът има достъп.

Може да има други начини да получите това, но това работи добре за мен, когато се използва jQuery.

Тук е SOAP пакет за горните:

<soapenv:Плик xmlns:soapenv =’HTTP://schemas.xmlsoap.org/SOAP/envelope/’>                
  <soapenv:Тяло>
    <GetListItems xmlns =’
HTTP://schemas.Microsoft.com/SharePoint/SOAP/’>
      <listName>Списък по избор с последващо папки</listName>
      <viewFields>  
        <ViewFields>
          <Име на FieldRef =' заглавие’ />
          <Име на FieldRef ='EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Папка>
HTTP://demoserver1/Blogging Списък на сценарии/списъци/по избор с последващо папки/година 2006</Папка>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Тяло>
</soapenv:Плик>

Много примери и дискусия около това довело ми да се смята, че всичко трябва да е <QueryOptions> и задайте име на папка.  За мен, Аз трябва да и го поставете между вътре <queryOptions> както и да укажете напълно квалифицирани URL АДРЕС за <Папка> възел.

Тук е настройка на jQuery AJAX:

$(документ).готов(функция() {
       var soapEnv =
           "<soapenv:Плик xmlns:soapenv =’HTTP://schemas.xmlsoap.org/SOAP/envelope/’> \
               <soapenv:Тяло> \
                    <GetListItems xmlns =’HTTP://schemas.Microsoft.com/SharePoint/SOAP/’> \
                       <listName>Списък по избор с последващо папки</listName> \
                       <viewFields> \
                           <ViewFields> \
                              <Име на FieldRef =' заглавие’ /> \
                              <Име на FieldRef ='EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Папка>http://demoserver1/Blogging Списък на сценарии/списъци/по избор с последващо папки/година 2006</Папка> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Тяло> \
           </soapenv:Плик>";

</край>

Абонирайте се за моя блог.

Следвайте ме на Twitter в http://www.twitter.com/pagalvin