花边管理软件官方网站

话说统一项目的Back(后退)控件

当初一接到这个任务的时候,第一个想到的就是写一个Back的控件然后用Request.UrlReferrer.OriginalString来实现,就是获取链接当前URL的上次请求URL,作为控件的输出URL,来达到后退的功能,原以为这样可以实现,但是恰恰出现了意外,项目中用的链接方式采用<a href="javascript:" onclick="document.location=''">Add</a>,如果在IFrame进行使用的话,Request.UrlReferrer.OriginalString并不能获取正确的之前URL,下载测试的demo。看看
<a href="SystemValueAdd.aspx">Add</a>
<a href="javascript:"
onclick="document.location='SystemValueAdd.aspx'">Add</a>的区别。
原以为可以解决问题了,不过还是出现了问题,项目一个页面套有两
个IFrame,一个是TreeView,一个是对应的列表,附图如下

查看列表的每一
项的明细是在列表的Parent窗口查看,这样用Request.UrlReferrer.OriginalString返回的时候就不能到TreeView跟列表的页面,而是到列表的页面,也不是我们想要的效果。
最后还是用history.back,用history存在两个问题
1.要解决PostBack后的后退问题
2.返回要自动刷新页面
1的解决方法是记录postback的次数,然后用history.go(-n)
2.则用Response.Cache.SetCacheability(HttpCacheability.NoCache);
清除页面html客户端缓存,这样back的时候就会重新再获取一次页面。

posted @ 2008-06-13 00:06  花边软件,花边管理软件,服装(鞋)管理软件  Views(930)  Comments(0Edit  收藏  举报
花边管理软件官方网站