欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【ASP.NET 中处理页面“回退”的方法】,下面是详细的分享!
ASP.NET 中处理页面“回退”的方法
我们在编写基于 ASP.NET 的应用程序时,如果代码执行出错或检测到异常,一般会提示用户“返回”或“回退”,或者在多步操作、列表/详细的查看界面中,也会给用户提供回退到上一页面的链接,对于这种情况,大家很快就会想到的简单做法就是利用 Javascript 来实现,即 history.go(-1) ,但是由于 ASP.NET 页面的 PostBack 机制,所以 history.go(-1) 可能还是当前页面,而不能真正回退到上一页面。
在 Classifieds Site Starter Kit 中,学习到一种不错的关于回退的处理方法,可以分别在客户端和服务器控件中实现页面的回退,代码如下:
1)首先在页面中增加两个属性
//记录上一个页面的信息
private string UrlReferrer
...{
get
...{
return ViewState["UrlReferrer"] as string;
}
set
...{
ViewState["UrlReferrer"]=value;
}
}
//记录 PostBack 的次数
public int NumPostBacks
...{
get
...{
if (ViewState["NumPostBacks"] !=null)
return (int)ViewState["NumPostBacks"];
else
...{
ViewState["NumPostBacks"]=0;
return 0;
}
}
set
...{
ViewState["NumPostBacks"]=value;
}
}
// 记录上一页面的信息或更新 PostBack 的次数
protected void Page_Load(object sender, EventArgs e)
...{
if (!Page.IsPostBack)
...{
if (Request.UrlReferrer !=null)
this.UrlReferrer=Request.UrlReferrer.ToString();
}
else
NumPostBacks++;
int goBackSteps=NumPostBacks + 1;
BackLink.NavigateUrl=String.Format("javascript:history.go(-{0});", goBackSteps);
}
//在代码中回退
protected void ReturnToPreviousPage()
...{
string referrer=UrlReferrer;
if (referrer !=null)
Response.Redirect(referrer);
else
Response.Redirect("~/default.aspx", true);
3)直接在代码中处理回退操作(如 Back_Click),可以直接调用如下方法
2)在 Page_Load 事件记录上一页面地址、更新 Postback 次数、设置回退链接的地址
以上所分享的是关于ASP.NET 中处理页面“回退”的方法,下面是编辑为你推荐的有价值的用户互动:
相关问题:在ASP.NET(C#)中,return的作用是什么,是退出当前...
答:当你的函数类型是void时,也就是表示无返回类型,那么return表示的意义是退出该函数,返回调用该函数的那部分代码。但是当你的函数类型是int, double等时,那么return返回的值也要对应,例如一个int类型的函数,那么你在return时就应该return pa... >>详细
相关问题:在ASP.NET中什么是页面回发 什么是回调 热心人指点...
答:页面回发将重新创建页面及其控件,并在服务器上运行页面代码,最后将完整的新版本页面发送到浏览器端重新呈现。在客户端回调中,使用浏览器端脚本函数(一般为JavaScript函数)向服务器端的当前页面类对象发送请求。当前页面类对象运行其正常生... >>详细
相关问题:ASP.NET 点击回退重新加载页面
答:protected void Button1_Click(object sender, EventArgs e) { Response.Redirect(ViewState["UrlReferrer"].ToString()); } 不懂的话看看这个 http://www.lwolf.cn/blog/article.asp?id=85 >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
