C# Extension to Delete selected SharePoint List Items

It is a common requirement to delete set of SharePoint list items from a list. In most case you might want to do that quickly as well. Here is a extension method that I wrote to accomplish that.

 public static void DeleteItemsCollection(this SPList list, SPWeb web, SPListItemCollection listitemCollection)
{
StringBuilder deletebuilder = DeleteBatchCommand(list, listitemCollection);
web.ProcessBatchData(deletebuilder.ToString());
}

 

StringBuilder DeleteBatchCommand(SPList spList, SPListItemCollection listitemCollection)
{
StringBuilder deletebuilder = new StringBuilder();
deletebuilder.Append(“<?xml version=\”1.0\” encoding=\”UTF-8\”?><Batch>”);
string command = “<Method><SetList Scope=\”Request\”>” + spList.ID +
“</SetList><SetVar Name=\”ID\”>{0}</SetVar><SetVar Name=\”Cmd\”>Delete</SetVar></Method>”;

foreach (SPListItem item in listitemCollection)
{
deletebuilder.Append(string.Format(command, item.ID.ToString()));
}
deletebuilder.Append(“</Batch>”);
return deletebuilder;
}

The method “DeleteItemsCollection” can be called up on any list together with SPWeb and the collection list items that you want to get rid of the list. You can simply execute the method as follows.

myList.DeleteItemsCollection(web, itemsToDelete);

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s