中国设计秀欢迎投稿
中国设计秀设计资源站
平面设计 画册 VI欣赏 包装 CG-插画 搜索 个人网页 Alexa排名 CSS 建站资源 下载专区 JS特效 品牌服装 服装院校 专题欣赏 SEO 图标欣赏 专题
广州网站设计 维美网站建设 域名注册 虚拟主机 广州网站建设 广州网页设计 虚拟主机 域名注册 素材下载 广告服务 中国品牌形象设计 网站推广 家具中国
求创科技
中国设计秀
中国福网
金视觉
中国设计秀欢迎你
中国品牌形象设计网
中国设计秀
当前位置:网络学院首页 >> 编程开发 >> .net >> ASP.NET 中处理页面“回退”的方法

ASP.NET 中处理页面“回退”的方法

来源:中国设计秀    作者:    点击:32     加入收藏    发表评论
0
顶一下
中资源

     我们在编写基于 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; } }
 2)在 Page_Load 事件记录上一页面地址、更新 Postback 次数、设置回退链接的地址
// 记录上一页面的信息或更新 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); }

3)直接在代码中处理回退操作(如 Back_Click),可以直接调用如下方法

//在代码中回退 protected void ReturnToPreviousPage() { string referrer = UrlReferrer; if (referrer != null) Response.Redirect(referrer); else Response.Redirect("~/default.aspx", true); }

来自:http://blog.joycode.com/moslem/archive/2006/10/17/85307.aspx
2007-10-04 11:35:00    出处:
热点文章/相关文章
关于我们 | 联系我们 | 网站建设 | 广告服务 | 版权声明 | 免责声明 | 网站公告 | 友情链接 | 留言 | 旧版入口