Sharepoint 2010 comes with bundle of new features to support different business scenarios. In sharepoint 2007 most of the developer had a hard time in handling the following scenario.
Scenario
In a custom event receiver redirect user to a custom error page after the validation failure.
In sharepoint 2007 there was no support for this scenario so usually every one set the error message and gets redirected to default out of the box error page. This default page will not match the theme of the site as well as the user experience.
Sharepoint 2010 comes with new properties for handling the scenario
properties.Status = SPEventRecieverStatus.CancelWithRedirectUrl;
Properties.RedirectUrl = “/_layouts/MyBlog/CustomError.aspx"
public override void ItemAdding(SPItemEventProperties properties)
{
base.ItemAdding(properties);
string tite = properties.AfterProperties[“title”].ToString();
if(tite.Contains(“_”))
{
properties.Cancel = true;
properties.Status = SPEventRecieverStatus.CancelWithRedirectUrl;
Properties.RedirectUrl = “/_layouts/MyBlog/CustomError.aspx?errormessage =Inavlid
Title”;
}
}
|
Create a application page called customerror.aspx and show the error message from the query string
<asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="Server">
<asp:Label ID="lblError" runat="server" > </asp:Label>
</asp:Content>
|
Add the following code in the page load
protected void Page_Load(object sender EventArgs e)
{
lblError.Text = Request.Param[“Error”];
}
|