gpt4 book ai didi

rest - 使用 REST 获取 SharePoint View 项

转载 作者:行者123 更新时间:2023-12-04 11:23:44 26 4
gpt4 key购买 nike

我正在尝试构建正确的 URL 以使用 REST api 返回 SharePoint View 中的项目。

使用我的浏览器和以下 URL,我可以返回列表中的项目。

https://mysharepoint.sharepoint.com/sites/MySite/_api/web/lists/getbytitle('Announcements')/Items

我可以使用以下 URL 获取 View 定义。
https://mysharepoint.sharepoint.com/sites/MySite/_api/web/lists/getbytitle('Announcements')/Views/getbytitle('Latest News')/

但是我无法弄清楚需要在该 URL 的末尾放置什么才能实际获取 View 返回的项目。

最佳答案

SP.View object 不是 包含用于操作列表项的任何方法。但是SP.View object包含 SP.View.viewQuery property指定 ListView 使用的查询。这意味着可以使用以下方法来检索列表项以供查看:

  • 使用 SP.View.viewQuery property 执行第一个请求以获取 ListView 的 CAML 查询
  • 通过指定 CAML 查询来执行检索列表项的第二个请求

  • 如何使用 JavaScript 使用 REST API 返回 ListView 的列表项
    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"
    }
    });
    }


    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);
    });
    }

    用法
    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 - 使用 REST 获取 SharePoint View 项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26884647/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com