I have an old application which has numerous webforms. On every aspx
page there is a designated back button, which takes the user to the previous page. All the buttons have the javascript onclick
event set to history.back()
.
On one of the aspx
pages, the back button would not work at all. We decided to use a server side button that would accomplish the same thing. The onclick event of the button has the necessary code to take the user to previous page.
First I created the onclick event in the following way, but the back button did not work at all. When I went in the debug mode, I found that the prevPage
variable was holding the current page URL instead of the previous page URL.
private void btnBack_Click(object sender, System.EventArgs e)
{
string prevPage = Request.UrlReferrer.ToString();
Response.Redirect(prevPage);
}
Then I changed the prevPage
to a static variable and defined its value to be set inside the if(!IsPostBack)
block. Now the back button worked correctly.
static string prevPage = string.Empty;
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
prevPage = Request.UrlReferrer.ToString();
}
}
private void btnBack_Click()
{
Response.Redirect(prevPage);
}
I did not understand why the first attempt wouldn't work and why second attempt would.
I have a feeling that this might explain if there is something else going on with this particular page that would also not let the history.back()
or history.go(-1)
work.
Can you please provide some insight into this?
Edit: I am using IE8.