[英]C# sharepoint List Item Collection
没错 我的返回类型为“列表项集合”,并且在SharePoint中我的列表包含5000多个项。 为了克服该阈值,我需要通过设置行限制来批量获取项目,但是我不知道该用什么代替? 因此返回类型也是“ ListItemCollection”(SharePoint客户端上下文)。 请帮忙
private static ListItemCollection GetItemsFromSharePointSiteList(string strListName, string strCamlQuery, ClientContext clientContext)
{
try
{
ListItemCollectionPosition itemPosition = null;
List listIPPMilestonesLE = clientContext.Web.Lists.GetByTitle(strListName);
CamlQuery query = new CamlQuery();
query.ViewXml = strCamlQuery;
query.DatesInUtc = false;
// ListItemCollection itemColl = new ListItemCollection();
do
{
Microsoft.SharePoint.Client.ListItemCollection listItemCollection = listIPPMilestonesLE.GetItems(query);
clientContext.Load(listItemCollection);
clientContext.ExecuteQuery();
foreach (ListItem oListItem in listItemCollection)
{
??
}
itemPosition = listItemCollection.ListItemCollectionPosition;
} while (itemPosition != null);
return null;
}
catch (Exception exc)
{
ErrorLog.Error(exc);
}
return null;
}
我的操作如下,希望这是一种解决方法,对您有所帮助
private static List<ListItem> GetItemsFromSharePointSiteList(string strListName, string strCamlQuery, ClientContext clientContext)
{
try
{
ListItemCollectionPosition itemPosition = null;
List listIPPMilestonesLE = clientContext.Web.Lists.GetByTitle(strListName);
CamlQuery query = new CamlQuery();
query.ViewXml = strCamlQuery;
query.DatesInUtc = false;
var itemColl = new List<ListItem>();
do
{
Microsoft.SharePoint.Client.ListItemCollection listItemCollection = listIPPMilestonesLE.GetItems(query);
clientContext.Load(listItemCollection);
clientContext.ExecuteQuery();
//
itemColl.AddRange(listItemCollection);
itemPosition = listItemCollection.ListItemCollectionPosition;
} while (itemPosition != null);
return itemColl;
}
catch (Exception exc)
{
ErrorLog.Error(exc);
}
return null;
}
您可以在caml查询中设置rowlimit。
例如:
CamlQuery query = new CamlQuery();
query.ViewXml = "<View><Query><Where><Geq><FieldRef Name='ID'/>" +
"<Value Type='Number'>1</Value></Geq></Where></Query><RowLimit>100</RowLimit><ViewFields><FieldRef Name='ID'/><FieldRef Name='Title'/></ViewFields></View>";
然后,使用ListItemCollectionPosition属性进行分页。
检查此样本 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.