Codebanking.com Bank your code here...
HOME REGISTER TECHNICAL Q&A GENERAL Q&A SUBMIT CODE SNIPPET LOGIN
 
 Topics
 Tech Feeds
 Tech Fun


Event Handler: Save Conflict

If you are using event handlers to update value of a field for the same SPListItem which triggered event, it may throw "Save Conflict" error.

 
public override void ItemUpdated(SPItemEventProperties properties)
{
 SPWeb contextWeb = properties.OpenWeb();
SPList spList = contextWeb.Lists[properties.ListId];
SPListItem contextItem = spList.GetItemById(properties.ListItemId);
contextItem["ColumnName"] = Value;
contextItem.update()                
}
The RED line above cause update event and again invokes ItemUpdated Event Handler, which in turn goes in infinite loop and thorws Save Conflict error.
 
Solution:
 
Before updating item, we need to disable Event Firing..as below
 
 public override void ItemUpdated(SPItemEventProperties properties)
{

this.DisableEventFiring();
 
SPWeb contextWeb = properties.OpenWeb();
SPList spList = contextWeb.Lists[properties.ListId];
SPListItem contextItem = spList.GetItemById(properties.ListItemId);
contextItem["ColumnName"] = Value;
contextItem.update()
                
this.EnableEventFiring();
 
}


Comments Posted:
No Comments Posted
Please login for leave your comments
 
 2010 codebanking.com      contactus@codebanking.com