2014-09-26 90 views
8

标题声明我的问题相当确切。如果我尝试使用SharePoint的REST API从列表中收集所有400多个项目,我只会获得前100个。Sharepoint 2013 REST API不返回列表中的所有项目

我已阅读http://msdn.microsoft.com/en-us/library/office/dn292552(v=office.15).aspx并在“使用REST处理列表项”部分中,他们声明

以下示例显示如何检索列表项的全部

url: http://site url/_api/web/lists/GetByTitle(‘Test')/items

method: GET

headers: ...

我强调一句话一切,因为那不是我越来越...

我缺少的东西?是否有一些选项我应该禁用/启用gett真正的所有项目?

谢谢

+0

你能展示你自己的代码吗?您是从列表中还是从特定视图中检索项目? – Christophe 2014-09-26 15:30:04

+0

没有代码是必要的,看看我只收到前100个项目。我只通过访问浏览器中的URL来获取这些数量的项目(所以只需将http:// site url/_api/web/lists/GetByTitle('Test')/ items'中的站点url和Test替换为我自己的价值观和我得到的XML与这100个项目) – leopik 2014-09-26 15:34:52

+0

没有代码是必要的,看看结果,但代码可能是必要的,以了解为什么;-) – Christophe 2014-09-26 15:37:01

回答

20

该限制是由于服务器端分页导致的。

一种解决方法是通过输入的项目数在一次检索100个项目,或覆盖的限制:

https://$DOMAIN/$SITE/_api/web/Lists/getByTitle('$LIST')/Items?$top=1000

注意,也有在5000

+0

现在我没有超过500的记录,所以这应该做的。感谢您的帮助^^! – leopik 2014-09-26 17:44:33

+0

......不过,出于好奇,我将如何检索100个项目(以便我可以控制下一批号码)? – leopik 2014-09-26 17:49:22

+1

这不容易...也许从这里开始http://msdn.microsoft.com/en-us/library/office/fp142385(v=office.15).aspx#sectionSection6然后浏览博客和论坛,以找出实际上作品 – Christophe 2014-09-26 19:49:10

1

阈你可以在休息呼叫中使用RowLimit & RowsPerPage。下面的例子

$.ajax({ 
url: siteurl + "/_api/web/lists/getbytitle('NewList')/items", 
method: "GET", 
headers: { "Accept": "application/json; odata=verbose" }, 
RowLimit : null, //Specify the row limit 
RowsPerPage : null, //Specify no of rows in a page 
success: function (data) { 
    $.each(data.d.results, function(index, item){ 
$('#oDataFilter').append("<tr>" + "<td class="+styleClass+">" + item.ID + "</td>" + "<td class="+styleClass+">"+ item.Title + "</td>" + "</tr>"); 
}); 
}, 
    error: function (error) { 
alert('Error getListItems :: '+JSON.stringify(error)); 
} 
1

添加到Christophe's答案,我会说,列出所有(可能5000)列表中的项目,并分析它们会导致性能问题。

如果查询sharepoint以显示特定列表中的所有项目,它只会打印出前100个。但xml响应还提供了url以查询下100个列表项目。

在XML响应的尽头,你会看到一个标签这样

<link rel="next" href="https://xxxxx.sharepoint.com/_api/web/lists/GetByTitle('list')/items?%24skiptoken=Paged%3dTRUE%26p_ID%3d100" /> 

href="...." URL是你所需要的。

查询上述内容将为您提供接下来的100个或更少项目的列表。 如果还剩下更多的项目,这个xml响应会反过来提供另一个<link rel="next">标签,如果没有,这个标签将不存在。

在我看来,最好能处理100件100件而不是所有件件。

相关问题