ASP.NET 中处理页面“回退”的方法
2007-03-05 12:26
926 查看
我们在编写基于ASP.NET的应用程序时,如果代码执行出错或检测到异常,一般会提示用户“返回”或“回退”,或者在多步操作、列表/详细的查看界面中,也会给用户提供回退到上一页面的链接,对于这种情况,大家很快就会想到的简单做法就是利用Javascript来实现,即history.go(-1),但是由于ASP.NET页面的PostBack机制,所以history.go(-1)可能还是当前页面,而不能真正回退到上一页面。
在ClassifiedsSiteStarterKit中,学习到一种不错的关于回退的处理方法,可以分别在客户端和服务器控件中实现页面的回退,代码如下:
1)首先在页面中增加两个属性
//记录上一个页面的信息privatestringUrlReferrer ...{ get ...{ returnViewState["UrlReferrer"]asstring; } set ...{ ViewState["UrlReferrer"]=value; } } //记录PostBack的次数 publicintNumPostBacks ...{ get ...{ if(ViewState["NumPostBacks"]!=null) return(int)ViewState["NumPostBacks"]; else ...{ ViewState["NumPostBacks"]=0; return0; } } set ...{ ViewState["NumPostBacks"]=value; } }
//记录上一页面的信息或更新PostBack的次数
protectedvoidPage_Load(objectsender,EventArgse)
...{
if(!Page.IsPostBack)
...{
if(Request.UrlReferrer!=null)
this.UrlReferrer=Request.UrlReferrer.ToString();
}
else
NumPostBacks++;
intgoBackSteps=NumPostBacks+1;
BackLink.NavigateUrl=String.Format("javascript:history.go(-{0});",goBackSteps);
}
3)直接在代码中处理回退操作(如Back_Click),可以直接调用如下方法
//在代码中回退
protectedvoidReturnToPreviousPage()
...{
stringreferrer=UrlReferrer;
if(referrer!=null)
Response.Redirect(referrer);
else
Response.Redirect("~/default.aspx",true);
}
来自:http://blog.joycode.com/moslem/archive/2006/10/17/85307.aspx
2)在Page_Load事件记录上一页面地址、更新Postback次数、设置回退链接的地址
相关文章推荐
- ASP.NET 中处理页面“回退”的方法
- ASP.NET 中处理页面“回退”的方法
- ASP.NET 中处理页面“回退”的方法
- 转载--ASP.NET 中处理页面“回退”的方法
- ASP.NET 中处理页面“回退”的方法
- ASP.NET 中处理页面“回退”的方法
- ASP.NET 中处理页面“回退”的方法
- ASP.NET中处理页面“回退”的方法
- ASP.NET 中处理页面“回退”的方法
- ASP.NET 中处理页面“回退”的方法
- ASP.NET 中处理页面“回退”的方法
- ASP.NET 中处理页面“回退”的方法
- ASP.NET 中处理页面“回退”的方法
- ASP.NET 中处理页面“回退”的方法
- ASP.NET 中处理页面“回退”的方法
- ASP.NET 中处理页面“回退”的方法
- Asp.net页面常用处理解决方法
- ASP.NET页面传值显示乱码处理方法
- C#编译器优化那点事 c# 如果一个对象的值为null,那么它调用扩展方法时为甚么不报错 webAPI 控制器(Controller)太多怎么办? .NET MVC项目设置包含Areas中的页面为默认启动页 (五)Net Core使用静态文件 学习ASP.NET Core Razor 编程系列八——并发处理
- ASP.NET 4 页面控件无法被禁用及产生aspNetDisabled处理方法