【问题标题】:c# SharePoint combine multiple ListItemCollection into onec# SharePoint将多个ListItemCollection合二为一
【发布时间】:2017-01-18 21:17:50
【问题描述】:

我在 Sharepoint 在线网站上有一个包含 5000 多个项目的列表。在列表达到 5000 个项目之前,我使用以下 sn-p 获取所有项目:

var camlquery = new CamlQuery();
camlquery.ViewXml = @"<View Scope='RecursiveAll'>
                        <ViewFields>
                            <FieldRef Name='OppId' />
                        </ViewFields>
                        <Query>
                            <QueryOptions>
                                <ViewAttributes Scope='Recursive' />
                            </QueryOptions>
                        </Query>
                    </View>";
ListItemCollection listItems = _currentList.GetItems(camlquery);
_clientContext.Load(listItems, items => items.Include(item => item["OppId"], item => item.Id));
_clientContext.ExecuteQuery();

现在我遇到了这种令人讨厌的情况,我有超过 5000 件物品。通常这不是问题。我之前在 powershell 中通过对结果进行分页来管理它。

在这种情况下,我使用Microsoft.SharePoint.Client.ListItemCollection 并使用函数GetItems(camlquery) 将项目添加到集合中。当我尝试从另一个“页面”添加其他项目时,它似乎不起作用。

我尝试遍历这些项目并将它们添加到 ListItemCollection。但是没有可用的添加或插入功能。

foreach (ListItem myListItem in listItems2)
{
     listItems.Add(myListItem);         
}

我需要返回一个包含 5000 多个项目的 ListItemCollection。

感谢您的帮助

【问题讨论】:

    标签: c# sharepoint caml sharepoint-online


    【解决方案1】:

    我找到了一种获取所有项目的方法,方法是使用IList&lt;ListItem&gt;ListItemCollection 收集所有ListItem 类型的对象。

    IList<ListItem> listItemsAll = new List<ListItem>();
    // Loop through pages of list items
    //... Getting all items
    
    foreach (ListItem myListItem in listItems)
    {
        listItemsAll.Add(myListItem);
    }
    // End Loop
    return listItemsAll;
    

    在这种情况下,我返回一个列表,但我只需要将列表类型从 ListItemCollection 更改为 IList&lt;ListItem&gt;。一切都按预期工作。

    【讨论】:

      【解决方案2】:

      将listItems和listItems2转换为Datatable,然后将datatable1的行复制到datatable2

      foreach (DataRow dr in dataTable1.Rows) {
          dataTable2.Rows.Add(dr);
      

      }

      【讨论】:

        猜你喜欢
        • 2019-09-30
        • 1970-01-01
        • 2019-11-06
        • 2016-03-18
        • 2010-12-15
        • 2020-12-08
        • 2017-02-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多