我有一个Sharepoint 2010列表,我使用System.Data.Services.Client.DataServiceQuery将列表导入C#列表。但是,当我通过列表枚举时,我限制为1000个项目。
我做了一些研究,发现Active Directory默认将此数字限制为1000,因此它在Sharepoint中也会受到限制,但我想增加这个数字。
任何人都可以提供一些步骤来在Sharepoint中找到MaxPageSize,或者它位于何处,这样我可以在我的C#程序中找回超过1000个项目?
答案 0 :(得分:0)
问题来自分页
现在,根据您的服务配置方式,您可能无法收到所有行。在我们的例子中,我们只得到1000.这意味着该服务仅配置为每个查询最多返回1000。要解决此问题,您必须对请求进行分页:
var projects = from project in dc.ITProjects
orderby project.Id
select new
{
Phase = project.Phase.Value,
ProjectName = project.Project
}
;
int recordCount = projects.Count();
int page = 0;
int pageSize = 100;
while(page*pageSize < recordCount)
{
foreach (var project in projects.Skip(page * pageSize).Take(pageSize))
{
Output0Buffer.AddRow();
Output0Buffer.C1 = project.Phase;
Output0Buffer.C2 = project.ProjectName;
}
page++;
}