我的介绍:实现页面间传object......
xuu27 2003-08-18 03:40:53 我的介绍:实现页面间传object......
就是调用Server.Transfer并在相关页面作对应的处理;
参考
ms-help://MS.VSCC/MS.MSDNVS.2052/cpguide/html/cpconpassingservercontrolvaluesbetweenpages.htm
达到java里面的jsp/servlet的request间的传bean(java web处理上经常做法,通过servlet或者jsp)作用;
错误之处难免,请指教.
欢迎交流: xuu27@hotmail.com
下面演示从thirdpage.aspx页面把User类的实例传到forthpage.aspx (aspx文件采用codebind写法)
------类User------
using System;
namespace Learn
{
/// <summary>
/// User 的摘要说明。
/// </summary>
public class User
{
public User()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
private string m_UserAccount;
private string m_UserName;
public string UserAccount
{
get { return m_UserAccount; }
set { m_UserAccount= value; }
}
public string UserName
{
get { return m_UserName; }
set { m_UserName= value; }
}
}
}
-------thirdpage.aspx-----------
-------说明:放置个button来操作
<%@ Page language="c#" Codebehind="thirdpage.aspx.cs" AutoEventWireup="false" Inherits="Learn.thirdpage" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>thirdpage</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="thirdpage" method="post" runat="server">
<asp:Button id="Button1" style="Z-INDEX: 101; LEFT: 303px; POSITION: absolute; TOP: 219px" runat="server" Text="Button"></asp:Button>
</form>
</body>
</HTML>
-------thirdpage.aspx.cs-----------
-------说明:关键是设置一个getter来获得User的实例
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace Learn
{
/// <summary>
/// thirdpage 的摘要说明。
/// </summary>
public class thirdpage : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button Button1;
public User user;
public User getUser
{
get
{
return user;
}
}
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void Button1_Click(object sender, System.EventArgs e)
{
user=new User();
user.UserAccount="xuu27";
user.UserName="xuxiao";
Server.Transfer("forthpage.aspx");
}
}
}
-------forthpage.aspx-----------
-------说明:关键是设置<%@ Reference Page="firstpage.aspx" %> 指向传来页面
<%@ Page language="c#" Codebehind="forthpage.aspx.cs" AutoEventWireup="false" Inherits="Learn.forthpage" %>
<%@ Reference Page="firstpage.aspx" %>
<HTML>
<HEAD>
<title>forthpage</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="forthpage" method="post" runat="server">
<FONT face="宋体"></FONT>
</form>
</body>
</HTML>
-------forthpage.aspx.cs----------
-------说明:"接收"显示
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace Learn
{
/// <summary>
/// forthpage 的摘要说明。
/// </summary>
public class forthpage : System.Web.UI.Page
{
public thirdpage tp;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if (!IsPostBack)
{
tp = (thirdpage)Context.Handler;
}
User user=tp.getUser;
this.Response.Write(user.UserAccount);
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}