There
are various ways using which you can navigate back to the previous
page. To keep the example short and simple, I will be using two pages
and a few buttons to demonstrate the navigation. So let us get started:
Step 1: Create an ASP.NET Project with two pages, Page1.aspx and Page2.aspx.
Step 2: On Page1.aspx, drag and drop a button control. In the click event, use this code:
protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect("Page2.aspx");
}
Step 3:
On Page2.aspx, we will be dragging and dropping 3 buttons. Each button
will represent a method to go back to the previous page. Let us
explore them one at a time:
URLReferrer
gets the URL of the previous page that linked to the current URL. To
use this property, declare a static variable called ‘prevPage’ in
Page2.aspx. Drag and drop a button, button1 on Page2.aspx. On the
Page_Load, use the Request.UrlReferrer to populate the prevPage variable
with its value. Then on the button1 click event, use this variable to
go back to the previous page as demonstrated below :
// static variable
static string prevPage = String.Empty;
protected void Page_Load(object sender, EventArgs e)
{
if( !IsPostBack )
{
prevPage = Request.UrlReferrer.ToString();
}
}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect(prevPage);
}
Method 2 – Using Javascript
Drag and drop another button called button2 on the Page2.aspx. In the Page_Load event, add the following lines of code :
protected void Page_Load(object sender, EventArgs e)
{
Button2.Attributes.Add("onClick", "javascript:history.back(); return false;");
}
protected void Button2_Click(object sender, EventArgs e)
{
}
Note
: Notice the ‘return false’ snippet used in the Button2.Attributes.Add
method. Well this is used to cancel the submit behaviour that occurs
on the button click. Since the Click event precedes over the other
events, we need to return false to cancel the submit and go back to the
previous page.
Method 3 – Using ViewState
If
you do not intend to declare a static variable, you can use viewstate
to go back to the previous page by using the same UrlReferrer property
that we used in Method 1. To do so, drag and drop a third button,
Button3 on Page2.aspx. In the Page_Load event, use the ViewState to
store the value of the Request.UrlReferrer property. Then access the
same value in the click event of the third button to go back to the
previous page as shown below:
protected void Page_Load(object sender, EventArgs e)
{
if( !IsPostBack )
{
ViewState["RefUrl"] = Request.UrlReferrer.ToString();
}
}
protected void Button3_Click(object sender, EventArgs e)
{
object refUrl = ViewState["RefUrl"];
if (refUrl != null)
Response.Redirect((string)refUrl);
}
No comments:
Post a Comment