页面之间传递对象

其实这个题目起的不是很好,传递对象也可以是单个数值

简单的传递用一般的GET,POST就可以,SESSION一样可以。

SESSION做一些简单的虽然好用但对服务器的负担有影响

我个人不怎么用SESSION除非不得已。

下面这种方法在网上广为流传,原文到底是谁我也不知道,简体版繁体版都见过

不过被传的面目全非,下面是主要代码(没怎么改动)我主要补充一些重要而原文由没有突出

或者是根本就没有的。如下:

使用Server.Transfer
  
  这个方法相比上面介绍的方法稍微复杂一点,但在页面间值传递中却是特别有用的,使用该方法你可以在另一个页面以对象属性的方式来存取显露的值,当然了,使用这种方法,你需要额外写一些代码以创建一些属性以便可以在另一个页面访问它,但是,这个方式带来的好处也是显而易见的。总体来说,使用这种方法是简洁的同时又是面向对象的。使用这种方法的整个过程如下:
  
  1,在页面里添加必要的控件
  2,创建返回值的Get属性过程
  3,创建可以返回表单的按钮和链接按钮
  4,在按钮单击事件处理程序中调用Server.Transfer方法转移到指定的页面
  5,在第二个页面中,我们就可以使用Context.Handler属性来获得前一个页面实例对象的引用,通过它,就可以使用存取前一个页面的控件的值了
  
  以下代码综合实现上述步骤过程的代码:
  源页面代码:
  把以下的代码添加到页面中
  public string Name
  {
  get
  {
  return TextBox1.Text;
  }
  }
  
  public string EMail
  {
  get
  {
  return TextBox2.Text;
  }
  }
  然后调用Server.Transfer方法
  private void Button1_Click
  (object sender, System.EventArgs e)
  {
  Server.Transfer("anotherwebform.aspx");
  }
  目标页面代码:
  private void Page_Load
  (object sender, System.EventArgs e)
  {
  //create instance of source web form
  WebForm1 wf1;
  //get reference to current handler instance
  wf1=(WebForm1)Context.Handler;
  Label1.Text=wf1.Name;
  Label2.Text=wf1.EMail;
  }

 

其实以上已经解释的很好了。如果你照上面做了根本就不能运行,

在 “WebForm1”处会出错,原因在于根本就没法定义WebForm1类

故在目标页的前台里先加上<%@ Reference Page ="~/WebForm1.aspx" %>

就可以运行了。

ok,这样可以完全调用源页面的所有方法、属性了。

这种方法很酷噢!!!!!!!!!!!!

作者:gudao119

出处:https://www.cnblogs.com/gudao119/archive/2008/07/27/1252307.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   古道  阅读(875)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示
more_horiz
keyboard_arrow_up dark_mode palette
选择主题