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

其实要实现这个功能主要还是要用到javascript

方法一:
 在asp.net的aspx里面的源代码中
<input type="button onclick="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="#"   onclick="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("对不起,当前是最前页码“);

这样才好使一点点喔
}

以下这段来自:http://stswordman.cnblogs.com/archive/2006/06/12/423910.html
在使用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>

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

下面是两个写好的方法:

调用
show_msg("参数错误","abc.aspx");

show_msg("提交成功","def.aspx");

  /// <summary>

  /// 提示错误信息!操作回滚!

/// </summary>

/// <param name="msg"></param>

/// <param name="code"></param>

public static void Show_Msg(string msg)

{

HttpContext.Current.Response.Write("<script>alert(/"" + msg + "/");history.back();</script>");

HttpContext.Current.Response.End();

}

/// <summary>

/// 提示成功信息!转向!

/// </summary>

/// <param name="msg"></param>

/// <param name="url"></param>

public static void Show_Msg(string msg, string url)

{

HttpContext.Current.Response.Write("<script>alert(/"" + msg + "/");location.href='" + url + "';</script>");

}

ASP.NET 中的返回按钮的实现【转】的更多相关文章

  1. window.history,页面中的返回按钮

    一.页面中的返回按钮事件 window.history可以不加window这个前缀 他的方法有: window.history.go(-1); //-n表示后退n页,n表示前进n页,或者是一个url ...

  2. Ionic3学习笔记(四)修改返回按钮文字、颜色

    本文为原创文章,转载请标明出处 目录 修改返回按钮文字 修改返回按钮颜色 1. 修改返回按钮文字 参考官网 Ionic API---Config 文档 可在 ./src/app/app.module. ...

  3. [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求

    在没有做题目中所述的内容的时候,感觉这应该是很简单的东西,但是当真正开始做的时候却发现,有很多问题现在在这里写出来,供和我一样水平不高的参考一下. 在写本文之前参照了一下文章 欢迎使用CSDN论坛阅读 ...

  4. asp.net中如何防止用户重复点击提交按钮

    asp.net中如何防止用户重复点击提交按钮   asp.net 中防止因为网速慢等影响交互的问题导致用户可能点击多次提交按钮,从而导致数据库中出现多条重复的记录,经过亲自验证在网上找的方法,找到两个 ...

  5. asp.net中的窗口弹出实现,包括分支窗口 . ASP.NET返回上一页面实现方法总结 .

    返回上一页的这个东东在我们做项目的时候一般是用于填写完表单后确认的时候,有对原来输入的数据进行修改或者更新时用的,或者是因为网站为了方便浏览者而有心添加的一个东东,一般这种功能的实现在ASP.NET中 ...

  6. asp.net中父子页面通过gridview中的按钮事件进行回传值的问题

    这两天写BS程序,遇到父子页面传值的问题,以前没写过web系统,用了几天时间才将问题解决,总结下记录下来: 问题描述: 父页面A中有一个gridview,每行6个列,有5列中均有一个按钮,单击按钮,会 ...

  7. Asp.net中存储过程拖拽至dbml文件中,提示无法获得返回值

    Asp.net中存储过程拖拽至dbml文件中,提示无法获得返回值,去属性表中设置这时候会提示你去属性表中更改返回类型. 其实存储过程返回的也是一张表,只不过有时候存储过程有点复杂或者写法不规范的话不能 ...

  8. ASP.NET中获取Repeater模板列中LinkButton按钮事件中获取ID等

    前台页面中: <asp:Repeater ID="repComment" runat="server">            <ItemTe ...

  9. asp.net中按钮回车事件(转自http://www.cnblogs.com/adinet/archive/2013/03/03/2941424.html)

    在做ASP.net WEB应用的时候,常常遇到会在同一个页面里添加多个按钮,而每个按钮肯定都会触发页面回送事件. 在ASP.NET中,只能指定一个带有runat="server"的 ...

随机推荐

  1. 服务器之间socket传输单链接和多连接测试结果

    今天做了一下测试,目的是看看局域网内服务器a,通过一个连接往服务器b传输数据,和通过多个连接传输的不同. 结果发现和多少个连接没关系,一个进程一个连接就能跑满网卡,只要write的时候够快,read的 ...

  2. 《asp.net mvc3 高级编程》第二章 控制器

    一.控制器的角色 MVC模式中的控制器(Controller)主要负责响应用户的输入,并且在响应时通常会修改模型(Model).通过这种方式,MVC模式中的控制器主要关注的是应用程序流,输入数据的处理 ...

  3. Js监控回车事件

    标题通俗的说,也就是绑定当用户按下回车键要执行的事件. 下面,入正题. 第一步,先编写简单的页面代码,这里我们只需要一个按钮就足够了.当然,还有按钮事件. <html> <head& ...

  4. Unity扩展编辑器--类型3:Custom Editors

    Custom Editors 加速游戏制作过程的关键是为哪些频繁使用的组件创建自定义的编辑器,为了举例,我们将会使用下面这个极其简单的脚本进行讲解,它的作用是始终保持一个对象注视某一点. public ...

  5. 解决xp下无法通过windows installer服务安装此安装程序包。您必须安装带有更新版本Wi

    今天装 tortoisegit 的时候发现安装包不能使用.报错无法通过windows installer服务安装此安装程序包.您必须安装带有更新版本Windows Installer服务的Window ...

  6. CentOS下编译安装Gcc-4.9

    给公司测试服务器搭环境,手工安装gcc-4.9.0颇费功夫,记录如下. 1.安装gcc.g++,系统源默认安装版本为4.4.7: 2.安装依赖包GMP.MPFR.MPC,注意安装顺序: 3.修改动态库 ...

  7. 【转载51CTO】Linux中引号那些事儿

    原文链接:http://os.51cto.com/art/201207/348855.htm 我们将把编写脚本的事情暂时搁在一边,然后来讨论一些,我们一直在用的,但是没有解释的东西.引号在这一节里面, ...

  8. C51指针小结

    一. 指针变量的定义 指针变量定义与一般变量的定义类似,其形式如下: 数据类型 [存储器类型1] * [存储器类型2] 标识符: [存储器类型1] 表示被定义为基于存储器的指针.无此选项时,被定义为一 ...

  9. 如何通过HOOK改变windows的API函数(找到函数的相对偏移)

    我们知道,系统函数都是以DLL封装起来的,应用程序应用到系统函数时,应首先把该DLL加载到当前的进程空间中,调用的系统函数的入口地址,可以通过GetProcAddress函数进行获取.当系统函数进行调 ...

  10. 使用dom4j 读取XML文件

    第一次接触dom4j的时候,感觉这个东西很神秘,因为之前虽然知道XML文件吧,但从来没有用过,一直感觉XML肯定不好操作.当得知,dom4j可以很容易的操作读取XML文件时,不免有些好奇,那么,用do ...