博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET返回上一页的方法小集
阅读量:4256 次
发布时间:2019-05-26

本文共 3108 字,大约阅读时间需要 10 分钟。

返回上一页的这个东东在我们做项目的时候一般是用于填写完表单后确认的时候,有对原来输入的数据进行修改时用的,或者是因为网站为了方便浏览者而有心添加的一个东东,一般这种功能的实现在ASP.net中都是用一个button的控件来实现的,实现的方法有很多,今天恰好在做项目时碰到要用这个东东,我就把能实现" 返回上一页","返回前一页"的几种方法总结了一下,供大家学习之用,请多多指教:0)

其实要实现这个功能主要还是要用到javascript
方法一:
在asp.net的aspx里面的源代码中
<input type="button οnclick="javascript:window.history.go(-1);"value="返回上一页">
浅析:这个是用了HTML控件,通过一个onclick的事件,调用了javascript中的一个方法就可以了。这个是最简单的了,也同样适用于静态页面,ASP页面等。
方法二:
利用Reponse.write
如果你对ASP有一定的了解,那么对Response.write这个东东就不会陌生了,方法一是直接有HTML页面中实现,则这个则是在后台环境中实现(这个说法好像不是很规范,呵呵)
Response.write("<script language=javascript>history.go(-2);</script>)
<a href="#" οnclick="javascript:history.back();">返回前一页</a>
这里为会么要采用-2的值呢,我个人认为是这样的:因为在asp.net中的页面,当你按下一个button后,由于页面中会实现page.postback的缘故,实际上在这其中是刷新了两次页面,我们要的是第一次的,所以就......
方法三
利用Response.Redirect() 或 server.transfer()
在page_load中加入
if(!IsPostBack)
ViewState["retu"]=Request.UrlReferrer.ToString();
而在在返回按钮事件中
Response.Redirect(ViewState["retu"].ToString());
或Server.Transfer (ViewState["retu"].ToString());
浅析:
Request.UrlReferrer可以获取客户端上次请求的url的有关信息,我们在使用这个的时候最好对其进行一个判断
if(ViewState["UrlReferrer"]!=null)
Response.Redirect(ViewState["UrlReferrer"].ToString();
else
{
Response.write("对不起,当前是最前页码“);
这样才好使一点点喔
}
以下这段来自:
在使用Request.UrlReferrer时还要注意:
1. 如果上一页面使用document.location方法导航到当前页面,Request.UrlReferrer返回空值
2. 如果有A,B两个页面,在浏览器中直接请求A页面,在A页面的中Page_Load事件中导航到B 页面,则 Request.UrlReferrer返回空。因为 在Page_load事件中页面还未初始化,所以无法记录当前页的信息,导航到b页面也就无法获得上一页面的信息
3. 点击刷新按钮不会改变Request.UrlReferrer
方法四:
这个方法估计很少人用,不过我试了一下,也还很不错喔
在button的onClick事件中输入
this.RegisterClientScriptBlock("e", "<script language=javascript>history.go(-2);</script>");
一样可以 返回到上一页
方法五
<a href=<%=request.servervariable("http_Referre)%>
<asp:image id="imageback" visible = true" imagurl="上一页" runat="server"/></a>

方法六:

Response.Write("<s cript>alert('提示信息');history.back()</s cript>");

Response.Write("<s cript>alert('提示信息');top.location.href='" + PageURL + "'</s cript>")

Response.Write("<s cript>alert('提示信息');window.location.href='" + PageURL + "'</s cript>");

Response.Write("<s cript>alert('提示信息');window.location=window.location;</s cript>");

方法七:

問題 : 想要在網頁上自製一個 "上一頁"的Button,一開始是這樣使用

1 Protected Sub PrePage_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles PrePage.Click
2 Response.Write("<script language=javascript>history.go(-2);</script>")
3 End Sub

使用-2是因為在按下上一頁這個button時網頁已經先postback了一次

但是這樣固定的後果,就是有時候已經在網頁上做了很多動作,如資料的修改新增等等

按下上一頁通常沒辦法回到想到的頁面

經過搜尋,將原本程式修改

01 Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
02 If Not IsPostBack Then
03 Session("getback") = 1 '初始值
04 Else
05 Session("getback") += 1
06 End If
07 End Sub
08 Protected Sub PrePage_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles PrePage.Click
09 '以Session("getback")來記錄應該返回之頁數
10 Response.Write("<script language=javascript>history.go(-" & Session("getback") & ");</script>")
11 '將值回復為初始值
12 Session("getback") = 1
13 End Sub

 

 

这里还要啰嗦一下用Javascript来实现与用Response.redirect()来实现的一点点区别,如果你是用天表单的时候想保留你填的数据,那就要用history.go();这个东东,如果你只是直接返回不用做任何操作,你就可以用reponse.redirect()了.

转载地址:http://zgnei.baihongyu.com/

你可能感兴趣的文章
写给大家看的设计书阅读笔记1——设计的四大基本原则
查看>>
Makefile快速入门学习笔记
查看>>
Elasticsearch、Logstash 、kibana安装配置
查看>>
Spring Boot 解决跨域问题的 3 种方案!
查看>>
SQL 性能优化,开发注意事项
查看>>
logback配置文件模板
查看>>
指针函数和冒泡排序法算法案例
查看>>
批处理修改地址为静态和动态的方法
查看>>
easyui $.messager.alert失效问题
查看>>
android studio 删除module
查看>>
android jsbridge实现原理简述
查看>>
java继承中的重写和隐藏
查看>>
java内部类为什么可以访问外部类属性方法
查看>>
StringBuilder StringBuffer 如何清空
查看>>
android软键盘弹起面试题
查看>>
HashMap实现原理和扩容及高版本优化
查看>>
java集合之LinkedHashMap解析
查看>>
Messenger和aidl的关系&aidl支持多线程吗,messenger呢
查看>>
AndroidManifest.xml文件何时被加载?如何查看apk的AndroidManifest
查看>>
如何判断一个对象是否可回收,GC回收对象的过程方式,finilized函数
查看>>