【问题标题】:How can I get list items by view name, using REST API ajax?如何使用 REST API ajax 按视图名称获取列表项?
【发布时间】:2020-03-16 20:27:37
【问题描述】:

我尝试按视图名称从 Sharepoint 库中获取项目列表。我有 ajax REST API URL:

url: webapp + "_api/web/list/getbytitle" + "('" + LibraryName + "')/View/getbytitle" +"('" + viewName + "')"
method:"GET"
header:"Accept":"application/json;odata=verbose

如何获取视图名称中的所有项目?

【问题讨论】:

    标签: sharepoint-2013 sharepoint-rest-api


    【解决方案1】:

    请参考以下代码 sn-p 从特定视图获取项目,Rest API 不是提供者项目端点直接从视图返回。 所以请执行以下操作:

    1. 使用 SP.View.viewQuery 属性执行第一个请求以获取列表视图的 CAML 查询
    2. 通过指定 CAML 查询执行第二个检索列表项的请求:

          getListItemsForView(_spPageContextInfo.webAbsoluteUrl,'MyList12','View1')
          .done(function(data)
          {
               var items = data.d.results;
               for(var i = 0; i < items.length;i++) {
                   console.log(items[i].Title);
               }    
          })
          .fail(
          function(error){
              console.log(JSON.stringify(error));
          });
      
      
      
       function getListItemsForView(webUrl,listTitle,viewTitle)
          {
               var viewQueryUrl = webUrl + "/_api/web/lists/getByTitle('" + listTitle + "')/Views/getbytitle('" + viewTitle + "')/ViewQuery";
               return getJson(viewQueryUrl).then(
                   function(data){         
                       var viewQuery = data.d.ViewQuery;
                       return getListItems(webUrl,listTitle,viewQuery); 
                   });
          }
      
          function getJson(url) 
          {
              return $.ajax({       
                 url: url,   
                 type: "GET",  
                 contentType: "application/json;odata=verbose",
                 headers: { 
                    "Accept": "application/json;odata=verbose"
                 }
              });
          }
      
      
      
       function getListItems(webUrl,listTitle, queryText) 
          {
              var viewXml = '<View><Query>' + queryText + '</Query></View>';
              var url = webUrl + "/_api/web/lists/getbytitle('" + listTitle + "')/getitems"; 
              var queryPayload = {  
                         'query' : {
                                '__metadata': { 'type': 'SP.CamlQuery' }, 
                                'ViewXml' : viewXml  
                         }
              };
      
              return $.ajax({
                     url: url,
                     method: "POST",
                     data: JSON.stringify(queryPayload),
                     headers: {
                        "X-RequestDigest": $("#__REQUESTDIGEST").val(),
                        "Accept": "application/json; odata=verbose",
                        "content-type": "application/json; odata=verbose"
                     }
               });
          }
      

    这里已经回答了同样的问题:

    Using REST to fetch SharePoint View Items

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-06
      • 1970-01-01
      • 2022-11-17
      • 2021-12-15
      • 1970-01-01
      相关资源
      最近更新 更多