网上天天有人问怎么在webform页面之间传值,基本上来说,大家熟悉的是   
  (1)url字符串传值   
  (2)session传值   
  (3)直接读取server.transfer过来的页面上的数据   
  前面2个就不说了,大家都知道怎么用,后面一个可能用的人比较少,这里做一下介绍。   
  Web   窗体页是应用程序中的类,因此可以向处理任何类一样为它们创建属性。但是,由于   Web   窗体页实际上仅在执行页的过程中存在,它们的生命周期非常短。因此,Web   窗体页上属性的用途相当有限,因为它们仅在处理页的过程中存在。但是,如果使用特定的技术将控件从一页传递到另一页,后一页仍可以访问前一页上的属性。   
  比如现在在一个webform页面上(page.aspx)放置了一个label,在   
  private   void   Page_Load(object   sender,   System.EventArgs   e)   
      {   
        this.Label1.Text="test";   
        }   
  我们设定了它的值,再为这个页面类设定一个公开的属性   
  public   Label   lab   
      {   
        get     
        {   
          return   Label1;   
        }   
      }   
  返回的就是这个页面上的一个Label   
  然后在这个页面上放置一个按钮,按钮的click事件中添加如下代码   
  Server.Transfer("newpage.aspx");   
  在newpage.aspx中同样放置一个Label标签,用来显示前一个页面那个Label的值,然后在Page_Load里面加上如下代码   
  if   (!IsPostBack)   
  {   
  page   p=(page)Context.Handler;   
  this.Label1.Text="传过来的值是:"+p.lab.Text;   
  }   
    
  我们运行这个程序,点击按钮,发现出现值传过来了,但是浏览器的url显示的还是原来的page.aspx,说明server.transfer是不改变 浏览器的url的,其实这说明此事件仅仅是在服务器端完成,并没有到客户端,这也就是为什么能在无状态的http下得到前面一个页面的数据的原因,如果你 换成response.redirect,你是不能得到任何东西的。分析一下上面的代码newpage   p=(newpage)Context.Handler的意思就是创建源页类的实例变量,然后可以向其分配   HTTP   对象(IHttpHandler类的一个实例),即接收初始请求的对象。这样传值的好处在于不像session一样使用内存,特别适合大数据的情况(其实 这不能称传值),坏处只能是同一个服务器页面之间,而且url并没有改变,用户看了可能会糊涂。   
    
  对程序你可以进一步改进,我们现在传的是一个Label的实例,你可以在页面间传递所有对象,甚至你可以直接使用前面一个页面的DataGrid!

转载于:https://www.cnblogs.com/jingxinchao/p/3200990.html

asp.net中的参数传递:Context.Handler 的用法相关推荐

  1. ASP.NET中实现页面间的参数传递 QueryString\Application\Session\Cookie

    一.使用QueryString 使用QueryString在页面间传递值是一种非常常见的方法,我们在ASP中就常常用到. (1)优点和缺点     优点:     1.使用简单,对于安全性要求不高时传 ...

  2. Asp.net中页面传值几种方式

    页面传值是学习asp.net初期都会面临的一个问题,总的来说有页面传值.存储对象传值.ajax.类.model.表单等.但是一般来说,常用的较简单有QueryString,Session,Cookie ...

  3. 【转】ASP.NET中页面传值

    http://www.cnblogs.com/wenly/archive/2008/06/10/1216678.html 一.目前在ASP.NET中页面传值共有这么几种方式: 1.表单提交,    & ...

  4. 在 ASP.NET 中使用 HTTPHandler 实现 Front Controller

    http://msdn.microsoft.com/zh-cn/library/ms998532.aspx 背景信息 示例有助于解释如何在 ASP.NET 中实现 Front Controller,并 ...

  5. Asp.net中Postback及Callback

    我们知道,在默认的情况下,当我们点击Asp.net Page中的一个服务器Button时(默认其实是Submit Form),会导致Page被Recreated,这个过程我们称之为Postback,它 ...

  6. Asp.net中的web.config配置

    Asp.net中的web.config配置 Asp.net中的web.config配置... 1 一. 配置文件保存位置... 2 二. 配置文件加载顺序... 2 三. 配置文件节点介绍... 3 ...

  7. ASP.NET中使用一般处理程序ashx作为后台处理实现响应get和post请求

    场景 ASP.NET中新建Web网站并部署到IIS上(详细图文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/107199 ...

  8. 一、目前在ASP.NET中页面传值共有这么几种方式:

    一.目前在ASP.NET中页面传值共有这么几种方式: 1.表单提交,    <form action= "target.aspx" method = "post&q ...

  9. 如何在ASP.NET中生成HTML5离线Web应用

    传统的Web应用程序有一个很大的症结是当用户的网络连接不好时,应用会加载失败,为了 解决这一问题,HTML5中引入了Web的离线工作的功能.离线功能使得Web应用程序类似于本机应用程序,当断开网络连接 ...

最新文章

  1. Java多线程 - 控制线程
  2. python最新版本-官方宣布不再维护Python2,并每年发布一个新版本
  3. 今天做了一个复杂的table
  4. 联系人排序java代码_Android仿微信联系人按字母排序_脚本之家
  5. ABAP OLE相关的应用
  6. Angular元素属性绑定的一个例子
  7. 在IT的路上,我在成长
  8. 奥鹏17计算机应用基础离线,奥鹏《计算机应用基础》离线
  9. WordPress的MySQL宕_wordpress数据库mysql使用phpmyadmin打开数据表,提示table “xxx” doesn`t exist...
  10. Map的keyset() 方法和entrySet() 方法
  11. FPGA 闪烁LED
  12. Ubuntu16.04安装MATLAB2014a
  13. 仿美团酒店预订的html模板,jQuery手机端仿美团酒店预订日期选择插件
  14. monkey入门研究
  15. 打开速达服务器出现系统通知,速达7000重装后,启动网络版服务器时会提示程序版本与数据库版本不一致...
  16. 【萧蕊冰】ui设计和交互设计的区别是什么?
  17. PAT乙级1050 螺旋矩阵
  18. c语言stone题目,The bridge is made stone.A.byB.fromC.ofD.up 题目和参考答案——青夏教育精英家教网——...
  19. 计算机缓存Cache以及Cache Line详解
  20. baidumaptrace.php,GitHub - SignalLine/BaiduMapTrace: 百度地图运动轨迹纠偏、去噪、绑路之百度鹰眼sdk服务...

热门文章

  1. 计算机系本科毕业论文评阅评语,毕业论文评阅教师评语
  2. 矩阵方阵matlab,求助!!错误使用 inv 矩阵必须为方阵。
  3. Django学习之数据库与ORM
  4. python + MySql 基本操作
  5. C#线程--5.0之前时代(一)--- 原理和基本使用
  6. 【前端】vue.js实现按钮的动态绑定
  7. 解决远程连接mysql错误1130
  8. 【python之路24】装饰器
  9. Bug整理——$(window).height()获取到$(document).height()的问题
  10. Struts2漏洞为互联网带来严重安全风险