0

Sharepoint 2010 リストがあり、System.Data.Services.Client.DataServiceQuery を使用してリストを C# リストに取得しています。ただし、リストを列挙すると、1000 項目に制限されます。

調査を行ったところ、Active Directory のデフォルトではこの数が 1000 に制限されていることがわかったので、Sharepoint でも制限されるのは理にかなっていますが、この数を増やしたいと考えています。

C# プログラムで 1000 を超えるアイテムを取得できるように、Sharepoint 内またはどこにでも MaxPageSize を見つけるための手順を誰かが提供できますか?

4

1 に答える 1

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++;
    }
于 2015-05-29T08:45:10.897 に答える