我是 SharePoint 新手,想使用 C# ClientContext类和CAML Query删除 SharePoint 列表中的所有行。
我怎样才能有效地实现它?
我是 SharePoint 新手,想使用 C# ClientContext类和CAML Query删除 SharePoint 列表中的所有行。
我怎样才能有效地实现它?
我解决了。学习是我们需要以相反的顺序删除列表中的项目。
链接:http: //msdn.microsoft.com/en-us/library/microsoft.sharepoint.splistitemcollection.delete.aspx
ListItemCollection listItems = oList.GetItems(CamlQuery.CreateAllItemsQuery());
clientContext.Load(listItems,
eachItem => eachItem.Include(
item => item,
item => item["ID"]));
clientContext.ExecuteQuery();
var totalListItems = listItems.Count;
Console.WriteLine("Deletion in " + currentListName + "list:");
if (totalListItems > 0)
{
for (var counter = totalListItems - 1; counter > -1; counter--)
{
listItems[counter].DeleteObject();
clientContext.ExecuteQuery();
Console.WriteLine("Row: " + counter + " Item Deleted");
}
}
另一种解决方法: - 在新列表(说:配置)上创建一个项目(说:deleteAllItems)。
使用 CAML 将 deleteAllItems 值从 False 更改为 True。
然后,使用工作流程,
如果 deleteAllItems == True,则删除所有项目。
将 deleteAllItems 重置为 False。
解决客户端性能问题。:)