【问题标题】:How to get the total number of Items in a specific view in a list using rest api如何使用rest api获取列表中特定视图中的项目总数
【发布时间】:2020-04-06 14:40:15
【问题描述】:

我需要获取特定视图中的项目总数 在 SharePoint 列表中。

我正在尝试低于终点,但它正在返回一个中所有项目的计数 列表。

/_api/Web/Lists/GetByTitle('<list_name>')/Items

假设视图名称是 XYZ 并且列表名称是 ABC 如何构建一个休息 api 从 ABC 列表中获取 XYZ 视图中的项目总数?

【问题讨论】:

    标签: sharepoint-2013


    【解决方案1】:

    您可以使用 CAML 查询并使用与列表视图相同的过滤器或在您的 Rest API URL 中使用过滤器。 详情请查看https://sharepoint.stackexchange.com/a/266795/68021

    【讨论】:

      【解决方案2】:

      要获取特定列表视图中的项目计数,首先获取列表视图 CAML Query,然后使用此 CAML Query 和 Rest API 中的 Post Request 来返回项目,这里有一个代码 sn-p 供您参考:

      <script type="text/javascript">
       getListItemsForView(_spPageContextInfo.webAbsoluteUrl,'ABC','XYZ')
          .done(function(data)
          {
               var itemsCount = data.d.results.length;
               alert(itemsCount);         
      
          })
          .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"
                     }
               });
          }
      </script>
      

      参考:

      Using REST to fetch SharePoint View Items

      【讨论】:

        猜你喜欢
        • 2015-01-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-29
        • 2020-03-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多