0
你可以建立一個批處理字符串從SharePoint列表這樣刪除的所有項目:刪除通過ProcessBatchData()列表中的項目
1: //create new StringBuilder 2: StringBuilder batchString= new StringBuilder(); 3: 4: //add the main text to the stringbuilder 5: batchString.Append(""); 6: 7: //add each item to the batch string and give it a command Delete 8: foreach (SPListItem item in itemCollection) 9: { 10: //create a new method section 11: batchString.Append(""); 12: //insert the listid to know where to delete from 13: batchString.Append("" + Convert.ToString(item.ParentList.ID) + ""); 14: //the item to delete 15: batchString.Append("" + Convert.ToString(item.ID) + ""); 16: //set the action you would like to preform 17: batchString.Append("Delete"); 18: //close the method section 19: batchString.Append(""); 20: } 21: 22: //close the batch section 23: batchString.Append(""); 24: 25: //preform the batch 26: SPContext.Current.Web.ProcessBatchData(batchString.ToString());
,我能想到的權唯一的缺點知道的是,所有的您刪除的項目將被放入回收站。我怎樣才能防止呢?
我也找到了解決方法如下圖所示:
// web is a the SPWeb object your lists belong to // Before starting your deletion web.Site.WebApplication.RecycleBinEnabled = false; // When your are finished re-enable it web.Site.WebApplication.RecycleBinEnabled = true; Ref [Here](http://www.entwicklungsgedanken.de/2008/04/02/how-to-speed-up-the-deletion-of-large-amounts-of-list-items-within-sharepoint/)
但是該解決方案的缺點是,只有未來的缺失將不會被髮送到回收站,但它會刪除所有現有項目,以及哪些用戶做不想。任何想法,以防止不刪除現有的項目?
提前許多感謝,
TQT
感謝繞過回收站對於你的評論, 但是,當用戶想要刪除大量數據時,你的代碼會遇到很大的問題。這將需要很長時間才能完成,因此這是糟糕的表現。 – 2010-06-17 03:38:45
嗨,是的,我知道,但是你已經實例化每個項目以獲得id和父列表? 另一件可能適用於您的事情是運行提升的代碼,以便項目不會在最終用戶回收站中,而是在系統的帳戶上。只是想法:) – Renzo 2010-06-17 08:36:34