返回上一页的这个东东在我们做项目的时候一般是用于填写完表单后确认的时候,有对原来输入的数据进行修改或者更新时用的,或者是因为网站为了方便浏览者而有心添加的一个东东,一般这种功能的实现在ASP.NET中都是用一个Button控件来实现的,实现的方法有很多,今天恰好在做项目时碰到要用这个东东,我就把能实现" 返回上一页","返回前一页"的几种方法总结了一下,供大家学习之用,请多多指教:
其实要实现这个功能主要还是要用到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>");
一样可以 返回到上一页
方法五:
这种方法也比较麻烦,不建议大家使用,这个好像是ASP里面的。
<a href=<%=request.servervariable("http_Referre)%>
<asp:image id="imageback" visible = true" imagurl="上一页" runat="server"/></a>
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
1 转帖:http://www.cnblogs.com/xiaoli0414/articles/778980.html 2 3 4 5 1.带有确认和取消分支按钮的窗口 6 7 放置一个服务器控件 在服务器控件的button1_onclick事件中执行插入命令 。在loadpage() 中增添 button1.Attributes.Add("onclick","return confirm('确认提交数据吗?');") 8 9 然后在按钮的单击事件中加入确认后要执行的代码即可 10 11 12 13 2.简单的提醒窗口 14 15 Response.Write("<script language=javascript>alert("xxxxxxxxxxxx");</script>"); 16 17 18 19 3.根据某一条件弹出窗口或者跳转页面 20 21 if(超过额度) 22 23 { 24 25 Response.Write("<script>if(confirm('超过额度,是否继续?')) location='B.aspx';else history.go(-1);</script>"); 26 27 } 28 29 else 30 31 { 32 33 Response.Write("<script>location='B.aspx';</script>"); 34 35 } 36 37 string str="<script language='javascript'>alert('省局数据不能进行修改!');</script>"; 38 39 Page.RegisterStartupScript("dd",str); 40 41 42 43 4.window.close关闭窗口,不弹出系统提示,直接关闭 44 45 当我们用这种方法:Response.Write("<script>window.close()</script>") 46 总是提示什么:你查看的网页试图关闭的提示 47 如何去掉提示,直接关闭窗体? 48 可以用以下方法: 49 Response.Write("<script>window.opener=null;window.close()</script>") 50 只有ie6才支持. 51 opener只要设为任何值都可以,不会出现提示 52 53 54 如果是通过子窗体关闭父窗体时怎么做呢 55 子窗体(弹出窗体): 56 同理可得: 57 Response.Write("<script>window.opener.top.opener=null;window.opener.top.close()</script>")