关于Hitsory的问题(一)

前几天做web项目的时候, 使用了ajax方面的updatepanel控件.使用后效果的确很酷.然而让人很头大的是关于History的操作问题.用户没有办法使用back 和 forward按钮行使相应的操作.

 

解决方案一:

在web页面使用自己的back 和 forward link. 同时, 使用自己的hashtable 维护一组历史记录. 需要back的页面需要通过程序在该hash表中注册.

 

1. 定义接口IBreadCrumbProvider. 该接口定义了常规注册方法.

     

Code

 

在该定义中,id 是将要注册的page的guid, 以便让其唯一. title为page的title,seedvalue标识将要过期时间. url为url路径.而comparer则用来注册该page时,是否要覆盖过去的记录.

 

2. 定义BreadCrumb和BreadCrumbs.

 

显然, BreadCrumb用来表示单一的对象, 而后者是该单一对象的list. 对单一的对象, 应该暴露接口中需要的属性. 而对list对象, 应该暴露注册和删除的方法.

 

 

Code

 

3. 让需要注册的page实现接口. 然后调用BreadCrumbs中对应的方法.

 

该方法主要是使用BreadCrumbs的Laod() 和Acquir()方法

BreadCrumbs m_breadCrumbs = BreadCrumbs.Load();

 

解决方案二:

使用IE自己的history对象来处理. 方法在下结介绍.

 

 

posted on 2008-07-31 13:31  Joe.W.Chen  阅读(288)  评论(0编辑  收藏  举报

导航