Lists.asmx, GetListItems و پوشه

من انجام برخی تحقیقات را برای کسی که امروز در سراسر وب سرویس list.asmx ارائه شده به عنوان بخشی از شیرپوینت 2010 (و قبل از آن).  او قادر بود برای به دست آوردن اقلام لیست در پوشه ریشه (از جمله نامهای از زیر پوشه ها), اما می تواند در موارد زیر پوشه ها را می کنید.  من برخی به دنبال بود در اطراف بر روی اینترنت و شگفت آور یک سوال مشترک است.  هنوز, من می توانم پاسخ خوبی به این سوال ساده نیست, "اگر من می دانم که پوشه, چگونه این اقلام را در پوشه?"  صادق باشد, من این همه سعی نمی کند از آنجایی که من می خواستم به شکل خود من در حالی که برای یکی از لبخند.

برای تنظیم این, ایجاد یک سایت به نام "سناریو وبنوشتها" و یک لیست سفارشی به نام "سفارشی با زیر پوشه".  من پس از آن ایجاد پوشه به نام:

  • سال 2005
  • سال 2006
  • سال 2007

من چند مورد را به پوشه "سال 2006".  این همان چیزی است که آن را مانند به نظر می رسد:

image

دوست من است کد # C نوشتن نیست، بلکه با استفاده از جاوا, بنابراین پاکت SOAP چیزی بود که او واقعا مورد نیاز است.  برای دریافت کنید که, من نوشت: یک بیت از jQuery و سپس با استفاده از نوازنده برای گرفتن مکالمه واقعی HTTP.

در اینجا ذکر کرد که jQuery مربوطه (من کپی کد زیر اگر می خواهید به کپی / چسباندن):

image

آنها کلید اول این است که شامل هر دو <queryOptions> و <QueryOptions> گره.  کلید دوم این است که <پوشه> گره URL که به مشتری است که دسترسی است.

ممکن است راه های دیگر را به این, اما این را به خوبی برای من کار می کرد که با استفاده از jQuery.

در اینجا این است که پاکت SOAP برای بالا:

<soapenv:xmlns پاکت:soapenv =’HTTP://schemas.xmlsoap.org / صابون / پاکت /’>                
  <soapenv:بدن>
    <xmlns GetListItems =’
HTTP://schemas.microsoft.com / شیرپوینت / صابون /’>
      <برگریز>لیست سفارشی با پوشه های فرعی</برگریز>
      <viewFields>  
        <ViewFields>
          <FieldRef نام = 'عنوان’ />
          <FieldRef نام = 'EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <پوشه>
HTTP://demoserver1/Blogging سناریوهای / لیست / فهرست های سفارشی با زیر پوشه / سال 2006</پوشه>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:بدن>
</soapenv:پاکت>

بسیاری از مثال ها و بحث در اطراف این باعث شد من به این باور است که تمام چیزی که نیاز دارم <QueryOptions> و مشخص نام پوشه.  برای من, من به هر دو بسته بندی کردن آن در داخل نیاز <queryOptions> همچنین به عنوان یک URL به طور کامل واجد شرایط برای مشخص <پوشه> گره.

در اینجا راه اندازی جی کوئری AJAX:

$(سند).آماده(تابع() {
       ور = soapenv
           "<soapenv:xmlns پاکت:soapenv =’HTTP://schemas.xmlsoap.org / صابون / پاکت /’> \
               <soapenv:بدن> \
                    <xmlns GetListItems =’HTTP://schemas.microsoft.com / شیرپوینت / صابون /’> \
                       <برگریز>لیست سفارشی با پوشه های فرعی</برگریز> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef نام = 'عنوان’ /> \
                              <FieldRef نام = 'EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <پوشه>http://demoserver1/Blogging سناریوهای / لیست / فهرست های سفارشی با زیر پوشه / سال 2006</پوشه> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:بدن> \
           </soapenv:پاکت>";

</پایان>

مشترک شدن در وبلاگ من.

من در توییتر در http://www.twitter.com/pagalvin

6 دیدگاه در "Lists.asmx, GetListItems و پوشه

  1. دانیل

    سلام

    I am trying to display the documents under a specific folder using a SPD 2010 DataSource GetListItems

    Once I connect to to my web service and enter the guid for the document library
    I can modify the QueryOptions and enter the following piece of CAML
    Compliance Training\CompanyX.

    Only this does not return any results – removing the QueryOptions parameter returns all the documents in the root document library….

    Am I looking at passing some sort of view parameter and include the view guid.

    پاسخ
  2. داگ

    در لطف یک دسته برای این پست, پل. من کوشش کرده ام برای مصرف GetListItems از طریق cfhttp کلدفیوژن, و می تواند حق پاکت می کنید. در نهایت در سراسر این ارسال آمد, و به عنوان مثال خود را بی وقفه کار می کرد. با تشکر دوباره.

    پاسخ
  3. داگ

    جهت مشاهده فرم خرید – آیا شما را از یک منبع که لیست تمام پاکت صابون مناسب می دانم? یک برای موارد GetList منتشر شده در microsoft.com می کند در اینجا شما مطابقت ندارد…

    پاسخ

پاسخ

آدرس ایمیل شما منتشر نخواهد شد. بخشهای موردنیاز علامتگذاری شدهاند *