在开发一些复杂的程序时经常后遇到多个页面跳转到同一页面,然后在返回.如果没有一个有效的处理方法,看似简单的问题也将会变得十分复杂.那么如果巧妙地实现页面返回功能呢?
1.在客户端实现
可以为控件添加客户端的onclick事件,当控件触发单击事件后在客户端执行页面返回功能.
(1) 使用HTML控件时,可以在页面HTML代码中为控件添加"onclick="history.go(-1)"",代码如下:
(1)在服务器端执行JavaScript脚本,代码如下所示:
下面代码实现了页面A跳转到页面B后,单击按钮返回页面A.
页面A实现跳转的代码如下所示.当页面A跳转到页面B的时候,将A的URL也传递到页面B.
1.在客户端实现
可以为控件添加客户端的onclick事件,当控件触发单击事件后在客户端执行页面返回功能.
(1) 使用HTML控件时,可以在页面HTML代码中为控件添加"onclick="history.go(-1)"",代码如下:
<INPUT onclick="history.go(-1)" type="button" value="Button">
(2) 使用Web服务器控件时,代码如下:
private void Page_Load(object sender, System.EventArgs e)
{
this.Button1.Attributes.Add("onclick","history.go(-1);return false;");
}
2.在服务器端实现{
this.Button1.Attributes.Add("onclick","history.go(-1);return false;");
}
(1)在服务器端执行JavaScript脚本,代码如下所示:
private void Button1_Click(object sender, System.EventArgs e)
{
Response.Write("<script>history.go(-2);</script>");
}
{
Response.Write("<script>history.go(-2);</script>");
}
注意:如果使用Response.Write("<script>history.go(-1);</script>");语句,实现的效果是原页面的刷新
(2)利用页面传值技术 下面代码实现了页面A跳转到页面B后,单击按钮返回页面A.
页面A实现跳转的代码如下所示.当页面A跳转到页面B的时候,将A的URL也传递到页面B.
string url="WebForm1.aspx"
Response.Redirect("WebForm2.aspx?url="+url);
页面B的处理代码如下所示.在页面B中将页面A的URL取出,然后返回页面A.
Response.Redirect("WebForm2.aspx?url="+url);
string url=Request.QueryString["url"];
Response.Redirect(url);
Response.Redirect(url);