2024年6月11日发(作者:)
中 “返回上一页”的实现方法小结
方法一(按钮):
">
方法二
在button的onClick事件响应函数中写如下代码:
erClientScriptBlock(e(), "e", "", true);
剖析:
假设当前页面为A,上一页为B,则当A中的button被按下后,A页面会立即
被回发到服务器进行处理,服务器端向A页面中添加了我们写的那个script块。
我们感到按钮被按下之后,页面刷新了一下,然后我们看到的已不是页面A了,
而是全新的A+页面,A+比A多了一个script块。
浏览器解析A+页面过程中遇到了script块,就执行javascript语句,执行到
(-2)时就连着退后两步。先从A+页面退到A页面,再从A页面退到B
页面。
于是就完成了整个回退过程。
方法一中之所以只回退一步,是因为它的button没有runat="server"属性,所以
按钮被按下之后并不回发到服务器,于是只回退一步,就从A回到B了。
方法三
在page_load中加入
if(!IsPostBack)
ViewState["retu"]=ng();
而在返回按钮事件中
if(ViewState["retu"]!=null){
ct(ViewState["retu"].ToString());
}
else
{
("对不起,当前是最前页码“);
}
注意:
在使用errer时:
1. 如果上一页面使用on方法导航到当前页面,errer
返回空值
2. 如果有A,B两个页面,在浏览器中直接请求A页面,在A页面的中Page_Load
事件中导航到B页面,则errer返回空。因为在Page_load事件中
页面还未初始化,所以无法记录当前页的信息,导航到B页面也就无法获得上
一页面的信息。
3. 点击刷新按钮不会改变errer
方法四
总结
方法1、2是通过javascript通知浏览器回到上一页,浏览器将调出本地缓存中的
上一页数据,所以回到上一页后,表单数据还被保留着。
而方法3、4则是通过在本页记录下上一页的url,然后在你点击“上一页”按钮时
重新向服务器发出http请求,再次请求这个url,所以你得到的“上一页”将是全
新的页面,以前填写的表单数据都没有了。
返回上一页的方法:
1、返回上一页并刷新
方法一:
("
")
其中 Variables("HTTP_REFERER") 为上一页地址(来源地址)
方法二:ct(Variables("HTTP_REFERER")) 直接返回
不提示,也可在返回前提示,
如
"ok"
ct(Variables("HTTP_REFERER"))
方法三:
在Asp页面首部加入
= True
sAbsolute = Now() - 1
s = 0
ontrol = "no-cache"
der "Pragma", "No-Cache"
禁止缓存,那么返回后数据会重新读取。也可以起到刷新作用。
2、返回上一页不刷新
或
发布评论