我的介绍:实现页面间传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
}
}



...全文
29 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
groupliu 2003-08-19
  • 打赏
  • 举报
回复
ding
bluesnail729 2003-08-19
  • 打赏
  • 举报
回复
UP
herofyf 2003-08-18
  • 打赏
  • 举报
回复
虽然简单!但是也要支持!
herofyf 2003-08-18
  • 打赏
  • 举报
回复
虽然简单!但是也要支持!

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧