In previous blog post (http://mstecharchitect.blogspot.com/2010/01/creating-relational-lists-in-sharepoint.html) when I try to delete an item from a list i got the error message as shown in below. The is typical way ASP.NET Web Application throws the exception to the user. Now in SharePoint 2010 we can redirect this error message to custom error page and we can show some fancy and useful information to user so that she/he understand very clearly about the error .
Now we are going to redirect the above error message to our custom error page. In Custom List we are going to add an event & handle the an Item Deleted event.
First Create a SharePoint 2010 Event Receiver project.
Now we have asked to select project deployment options either Sandbox or Farm. I am going to deploy this project as Farm Solution .
Now Choose the Type of Event Receiver and Item source. In our case Source is Custom List and Type of Event Receiver is List Items.
Once you selected above settings click finish. VS.NET 2010 will create Event Handlers for the events you selected in the above list.
Now add Application page item to the project.
Design your custom Error page using HTML as shown below.
Now add the event handler code for ItemDeleteing as Shown below.
1: using System;
2: using System.Security.Permissions;
3: using Microsoft.SharePoint;
4: using Microsoft.SharePoint.Security;
5: using Microsoft.SharePoint.Utilities;
6: using Microsoft.SharePoint.Workflow;
8: namespace SreeniItemDeleteErrorMessage.EventReceiver1
10: /// <summary>
11: /// List Item Events
12: /// </summary>
13: public class EventReceiver1 : SPItemEventReceiver
15: /// <summary>
16: /// An item is being deleted.
17: /// </summary>
18: public override void ItemDeleting(SPItemEventProperties properties)
21: properties.Status = SPEventReceiverStatus.CancelWithRedirectUrl;
22: properties.RedirectUrl = "/_Layouts/SreeniItemDeleteErrorMessage/ItemDelete.aspx";
Now Build ,deploy & test the solution (Hit F5). Now go to any Custom list and try to delete an item.
now you will get this Custom Error message.