【发布时间】:2010-06-14 09:04:46
【问题描述】:
您可以构建一个批处理字符串以从 SharePoint 列表中删除所有项目,如下所示:
1: //创建新的StringBuilder 2:StringBuilder批处理字符串=新的StringBuilder(); 3: 4: //将正文添加到字符串生成器 5:batchString.Append(""); 6: 7://将每个项目添加到批处理字符串并给它一个命令删除 8:foreach(itemCollection中的SPListItem项) 9:{ 10: //创建一个新的方法部分 11:batchString.Append(""); 12: //插入listid以知道从哪里删除 13:batchString.Append("" + Convert.ToString(item.ParentList.ID) + ""); 14: //要删除的项目 15:batchString.Append("" + Convert.ToString(item.ID) + ""); 16: //设置你想要执行的动作 17:batchString.Append(“删除”); 18: //关闭方法部分 19:batchString.Append(""); 20:} 21: 22: //关闭批处理部分 23:批处理字符串。附加(“”); 24: 25: //执行批处理 26: SPContext.Current.Web.ProcessBatchData(batchString.ToString());我能想到的唯一缺点就是你删除的所有项目都会被放入回收站。我怎样才能防止这种情况发生?
我还找到了如下解决方案:
// web 是您的列表所属的 SPWeb 对象 // 在开始删除之前 web.Site.WebApplication.RecycleBinEnabled = false; // 当你完成后重新启用它 web.Site.WebApplication.RecycleBinEnabled = true; 参考 [这里](http://www.entwicklungsgedanken.de/2008/04/02/how-to-speed-up-the-deletion-of-large-amounts-of-list-items-within-sharepoint/)但该解决方案的缺点是只有将来的删除不会被发送到回收站,但它会删除所有现有的项目以及用户不想要的。有什么想法可以防止不删除现有项目?
非常感谢,
TQT
【问题讨论】:
标签: sharepoint sharepoint-2007