SharePoint - 获取视图中的项目数

问题描述 投票:0回答:1

我正在尝试返回 SharePoint 视图中的项目计数。我尝试过使用如下所示的多个 api 调用,但并不真正了解如何定位特定列表。我不断收到错误“找不到请求视图的资源。”。我也尝试过将视图名称替换为视图 ID。任何关于我可以在邮递员中使用的 api 请求的建议将不胜感激

postman 中的 API 请求示例

https://[SHAREPOINT]/sites/TestSJTemp/_api/web/GetFolderByServerRelativeUrl('/sites/TestSJTemp/Export Applications')/Views/getbytitle('MAN eCase 2003')

我尝试从中获取计数的列表的 Web URL

https://[SHAREPOINT]/sites/TestSJTemp/EXP2/Forms/eCase%20Document%20Type%20View.aspx?newTargetListUrl=%2Fsites%2FTestSJTemp%2FEXP2&viewpath=%2Fsites%2FTestSJTemp%2FEXP2%2FForms%2FeCase%20Document%20Type %20View%2Easpx&viewid=aef46c6f%2D4901%2D4e3e%2D876f%2D6b55549b945d

共享点页面和结构的图像。我选择突出显示的视图,在本例中可以看到列表底部的计数为 35。对于某些列表中的项目数可能超过 40000,因此计数不会显示

sharepoint sharepoint-online
1个回答
0
投票

我发现同一篇文章可能对您有帮助: SP.View对象不包含任何操作列表项的方法。但是 SP.View 对象包含 SP.View.viewQuery 属性,它指定列表视图使用的查询。这意味着可以使用以下方法来检索列表项以供查看:

  • 执行第一个请求以获取列表视图的 CAML 查询,使用 SP.View.viewQuery 属性

  • 通过指定 CAML 执行第二个请求以检索列表项 询问 如何使用 JavaScript 使用 REST API 返回列表视图的列表项

    函数 getJson(url) { 返回 $.ajax({
    网址:网址,
    输入:“获取”,
    contentType: "application/json;odata=verbose", 标题:{ “接受”:“application/json;odata=verbose” } }); }

    函数 getListItems(webUrl,listTitle, queryText) { var viewXml = '' + queryText + ''; var url = webUrl + "/_api/web/lists/getbytitle('" + listTitle + "')/getitems"; var 查询有效负载 = {
    '询问' : { '__metadata': { '类型': 'SP.CamlQuery' }, 'ViewXml':viewXml
    } };

    返回$.ajax({ 网址: 网址, 方法:“POST”, 数据:JSON.stringify(queryPayload), 标题:{ "X-RequestDigest": $("#__REQUESTDIGEST").val(), "接受": "application/json; odata=verbose", “内容类型”:“应用程序/json;odata=详细” } });

    }

    函数 getListItemsForView(webUrl,listTitle,viewTitle) { var viewQueryUrl = webUrl + "/_api/web/lists/getByTitle('" + listTitle + "')/Views/getbytitle('" + viewTitle + "')/ViewQuery"; 返回 getJson(viewQueryUrl).then( 函数(数据){
    var viewQuery = data.d.ViewQuery; 返回 getListItems(webUrl,listTitle,viewQuery); }); }

使用方法

getListItemsForView(_spPageContextInfo.webAbsoluteUrl,'Announcements','Latest News')
.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));
});

参考:

使用 REST 获取 SharePoint 视图项目 如何使用rest api获取列表中特定视图中的项目总数

© www.soinside.com 2019 - 2024. All rights reserved.