IE前进和后退的实现

在项目是有时会遇到需要模拟IE前进和后退的情况,但又不能用Javascript中的History.back();来实现,当页面属于表单提交(尤其是动态加载的页面), History.back后退会造成页面过期.如果在IE中隐藏了原来的前进和后退,这是致命的,再怎么也回到不原来的页面.需要重新写前进和后退功能,以下就是我为这个写的一个例子,如有不正确地方请指教,在这里帖出来只是为了减少大家在工作中的时间.^-^

 

首先看结构: 
1.GIF

首先继承System.Web.UI.Page,在基类中添加几个属性,如下表:

LinkButton lnkBack

后退按钮

LinkButton lnkForward

前进按钮

IList<string> HistoryList

用于保存后退历史页面路径的列表,需用Session保存会话状态

IList<string> ForwardList

用于保存前进历史页面路径的列表,需用Session保存会话状态

bool IsHistory

用于判断当前请求是否为前进或后退请求.

string CurrentEventSource

取得当前请求的事件源控件名称

void OperateHistoryList()

处理前进和后退

    当后退时,取出后退列表中最后一次路径,用于跳转,并将当前页路径存入前进列表中

    当前进时,取出前进列表中最后一次路径,用于跳转,并将当前页路径存入后退列表中

 

具体处理如下图:

2.GIF

代码如下
: 

Code

源程序下载: HistoryTest

posted on 2008-04-02 10:37  Eric huang  阅读(481)  评论(0编辑  收藏  举报