ASP.NET返回上一页面的实现代码_实用技巧

解决方法:

程序的相关介绍

主界面:未发货订单列表(http://localhost:18888/Order/UnfilledOrdersList.aspx)

子界面:订单详细信息(http://localhost:18888/Order/ViewOrderDetail.aspx?OrderId= id,其中id的值是在主界面中被选中的那条订单信息的id)

主页面为一个订单的主要信息,GridView中有一个HyperLink控件,通过它可以跳转到“订单详细信息”界面进而查看订单的详细信息。

子界面有一个“返回”Button,通过它跳转回主界面。

最初在返回按钮中的程序为:

复制代码 代码如下:

#region 返回按钮
protected void btnReturn_Click(object sender, EventArgs e)
{
string url = Request.QueryString["Url"] == null ? "" : Request.QueryString["Url"].ToString();
Response.Redirect(url);
}
#endregion

经过调试,url得到的值总为空字符串,即url总为"",所以总是返回不到主界面。

查了资料后,我把程序改为:

复制代码 代码如下:

//在页面加载事件中所加的代码
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
/******下面的代码一定要放在判断是否是回发事件中,否则仍得不到效果******/
if (Request.UrlReferrer != null)
{
ViewState["retu"] = Request.UrlReferrer.ToString();
}
}
}

#region返回按钮
protected void btnReturn_Click(object sender, EventArgs e)
{
string url = ViewState["retu"].ToString() == null ? "" : ViewState["retu"].ToString();
Response.Redirect(url);

}

修改后的代码,经调试,url = http://localhost:18888/Order/UnfilledOrdersList.aspx,即主界面的地址,因此能正确返回到主界面。

程序解释:用户通过客户端浏览器请求页面,页面第一次运行,语句"ViewState["retu"] =Request.UrlReferrer.ToString();”获取了该请求的上一个页面的URL。之所以将该语句放在"if (!IsPostBack){}"语句快中,是因为当用户输入信息、从可选项中进行选择或单击按钮后,页面可能再次被发送到Web服务器,在ASP.NET中被称为“回发”。更确地的说,页面发送会其自身。因此语句"ViewState["retu"] =Request.UrlReferrer.ToString();”仅需在首次请求页面时执行,而不是每次回发时都执行,这时用Page对象的IsPostBack属性来避免对往返行程执行不必要的处理。

在"if (!IsPostBack){}"处下断点调试时可以清楚得看到这一过程。

插曲:ASP.NET中LinkButton和HyperLink的区别

因为存在主界面向子界面跳转的问题,需要链接,LinkButton和HyperLink都可以实现,查了些资料,最后我选择了HyperLink,因为只是简单的跳转无需进行服务器端处理。在此介绍一下LinkButton和HyperLink的区别:
    1)LinkButton支持回发,在服务器端处理页面跳转功能,将用户导航到目标URL。因此可以在链接到新页面前做一些处理,入检验输入,组合成新的URL等。 HyperLink不会回发到服务端,不能进行服务器端的处理。

2) LinkButton控件实现页面跳转是在Click事件中使用Response.Redirect等方法实现的。HyperLink只需设置NavigateUrl就可以实现页面跳转,
用法上最大的区別是 LinkButton有Click事件﹐而HyperLink沒有。

时间: 2024-12-02 00:04:58

ASP.NET返回上一页面的实现代码_实用技巧的相关文章

ASP.NET动态生成静态页面的实例代码_实用技巧

最近突然想把项目中新闻管理模块做成静态页,在网上找到很多很好的文章,在这里记录一下,现在只是实现静态页面的生成并没有实现分页功能.其主要原理就是读取数据库的数据然后替换掉静态模板页的内容.首先制作一个模板页,暂时命名为template.htm,示例代码如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-trans

asp.net输出重写压缩页面文件实例代码_实用技巧

例子 复制代码 代码如下: using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.htmlControls;using Sys

ASP.NET MVC自定义错误页面真的简单吗?_实用技巧

如果你在设置asp.net mvc自定义错误页面时遇到问题,这并不止你一个人.惊讶之余你的做法是正确的,没有起到作用的原因是其一部分错误是由asp.net管道处理的,另一部分是由iis直接处理. 通常情况 (我期望是这种情况,在一些其他框架/服务器上) 我们只需要在一个地方配置自定义错误页就可以了,无论怎么哪儿引发的错误.就像这样︰ <customErrors mode="On"> <error code="404" path="404.

ASP.NET文件上传Upload的实现方法_实用技巧

本文实例为大家分享了ASP.NET 文件上传,供大家参考,具体内容如下 1.最近应项目开发的需求要实现附件的异步上传和下载. 2.上传:文件上传到指定的路径下,并返回上传文件的信息给前端界面,如:文件的图标.上传的文件名.文件的大小. 3.上传后,在前端界面上显示上传的文件信息,点击文件名实现将上传的文件下载到本地. 4.先展示一下Demo运行的效果图: 点击提交后: 点击文件名实现下载到本地: 5.下面就给出前台代码: <!DOCTYPE html> <html> <hea

实现Asp.net mvc上传头像加剪裁功能_实用技巧

在我们使用QQ上传头像,注册用户账号时是不是都会遇到上传图像,并根据自己的要求对图像进行裁剪,这是怎么实现的呐? 本文主要介绍了Asp.net mvc实现上传头像加剪裁功能,分享给大家供大家参考.具体如下:  运行效果截图如下: 具体代码如下: 前台代码 <link href="~/Content/fineuploader.css" rel="stylesheet" /> <link href="~/Content/jquery.Jcro

asp.net session的使用与过期实例代码_实用技巧

1.Session是一种Web会话中的常用状态之一. 2.Session提供了一种把信息保存在服务器内存中的方式.他能储存任何数据类型,包含自定义对象. 3.每个客户端的Seesion是独立存储的. 4.在整个会话过程中,只要SessionID的cookie不丢失,都会保存Session信息的. 5.Session不能跨进程访问,只能由该会话的用户访问.应为提取Session数据的id标识是以Cookie的方式保存到访问者浏览器的缓存里的. 6.当会话终止,或过期时,服务器就清除Session对

ASP.NET返回上一页面的实现代码

解决方法: 程序的相关介绍 主界面:未发货订单列表(http://localhost:18888/Order/UnfilledOrdersList.aspx) 子界面:订单详细信息(http://localhost:18888/Order/ViewOrderDetail.aspx?OrderId= id,其中id的值是在主界面中被选中的那条订单信息的id) 主页面为一个订单的主要信息,GridView中有一个HyperLink控件,通过它可以跳转到"订单详细信息"界面进而查看订单的详细

asp.net上传execl文件后,在页面上加载显示(示例代码)_实用技巧

复制代码 代码如下:     #region 上传Execl文件    protected void Button1_Click(object sender, EventArgs e)    {        if (FileUpload1.HasFile)        {            string NewFileName = string.Empty;            string ErrorMess = UpLoadFile(FileUpload1, ".xls|.xlsx

Asp.net动态生成html页面的方法分享_实用技巧

    此功能适用于后台数据库功能不强的web站点,即大部分文本不是存放在数据库的记录中,而是放在html文件或者xml文件中,仅仅把索引放到数据库中,如文章标题.类别.查询关键字等.这样适合于后台没有诸如MS Sql Server这样的数据库支持的Web站点.  适用于新闻发布系统,比如sina.163等都是采用动态生成html页面的.     适用于需动态定制页面的程序.比如论坛.聊天室等.可以加载定制好的html页面,来加强美观.     思路     1. 利用如Dw-Mx这样的工具生成