您的位置:首页 > 其它

Web页面间传值的实现方式总结

2010-03-03 21:08 330 查看
我们进行Web开发时经常会用到页面间传值的功能,下面结合ASP.NET开发对其进行简单的总结:

1、Url带参数

2、Session、Cookies、Application

3、post到目标页面,然后在目标页面Request

ASP中常用的方法,提交Form到其它页

4、使用Server.Transfer

举个例子看看:
(1)、创建一个web form
(2)、在新建的web form中放置一个button1,在放置两个TextBox1,TextBox2
(3)、为button按钮创建click事件
代码如下:

private void Button1_Click (object sender, System.EventArgs e)
...{
Server.Transfer("webform2.aspx");
}
(4)、创建过程来返回TextBox1,TextBox2控件的值代码如下:

public string Name
...{
get
...{
return TextBox1.Text;
}
}

public string EMail
...{
get
...{
return TextBox2.Text;
}
}
(5)、新建一个目标页面命名为webform2
(6)、在webform2中放置两个Label1,Label2
在webform2的Page_Load中添加如下代码:

private void Page_Load
(object sender, System.EventArgs e)
...{
//创建原始窗体的实例
WebForm1 wf1;
//获得实例化的句柄
wf1=(WebForm1)Context.Handler;
Label1.Text=wf1.Name;
Label2.Text=wf1.EMail;

}
运行,即可看到传递后的结果了。

5、ASP.NET 2.0中新引入的方式,通过PostBackUrl传递

看个例子:

(1)创建个发送页面 PageTransTest1.aspx

前台代码:

<%...@ Page Language="C#" AutoEventWireup="true" CodeFile="PageTransTest1.aspx.cs" Inherits="Front_Test_PageTransTest1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>跨页面传送—发送页</title>
</head>
<body>
<form id="form1" runat="server">
<table border="0" width="100%" cellpadding="4" cellspacing="1">
<tr>
<td>
 <asp:Label ID="Label1" runat="server" AccessKey="N" AssociatedControlID="txtUid"
Text="User<U>n</U>ame"></asp:Label>
<asp:TextBox ID="txtUid" runat="server" Width="100px"></asp:TextBox></td>
</tr>
<tr>
<td>
 <asp:Label ID="Label2" runat="server" AccessKey="P" AssociatedControlID="txtPwd"
Text="<U>P</U>assword"></asp:Label>
<asp:TextBox ID="txtPwd" runat="server" TextMode="Password" Width="100px">User<U>n</U>ame</asp:TextBox></td>
</tr>
<tr>
<td>
<asp:Button ID="btnGoOtherPage" runat="server"
Text="Post Back Other Page(G)" OnClick="btnGoOtherPage_Click" AccessKey="G" /></td>
</tr>
</table>
</form>
</body>
</html>

后台代码:

using System;
using System.Data;
using System.Configuration;
using System.Collections;
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;

public partial class Front_Test_PageTransTest1 : System.Web.UI.Page
...{

public TextBox Uid
...{
get
...{
return this.txtUid;
}
}

public TextBox Pwd
...{
get
...{
return this.txtPwd;
}
}

protected void Page_Load(object sender, EventArgs e)
...{
this.btnGoOtherPage.PostBackUrl = "PageTransTest2.aspx";
}

protected void btnGoOtherPage_Click(object sender, EventArgs e)
...{

}
}

(2)创建接收页面 PageTransTest2.aspx

前台代码:

<%...@ Page Language="C#" AutoEventWireup="true" CodeFile="PageTransTest2.aspx.cs" Inherits="Front_Test_PageTransTest2" %>
<%...@ PreviousPageType VirtualPath="PageTransTest1.aspx" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>跨页面传送—接收页</title>

</head>
<body>
<form id="form1" runat="server">
<table border="0" width="100%" cellpadding="4" cellspacing="1">
<tr>
<td>
姓名:<asp:Label ID="lUid" runat="server"></asp:Label></td>
</tr>
<tr>
<td>
密码:<asp:Label ID="lPwd" runat="server"></asp:Label></td>
</tr>
<tr>
<td>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="PageTransTest1.aspx">[返回]</asp:HyperLink></td>
</tr>
</table>
</form>
</body>
</html>

后台代码:

using System;
using System.Data;
using System.Configuration;
using System.Collections;
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;

public partial class Front_Test_PageTransTest2 : System.Web.UI.Page
...{
protected void Page_Load(object sender, EventArgs e)
...{
lUid.Text = PreviousPage.Uid.Text.ToString();
lPwd.Text = PreviousPage.Pwd.Text.ToString();
}
}

6、通过序列化的方式传递

通过序列化的方式进行页面间的值传送,此部分实例将通过一个跨站点的Session共享实例进行讲解。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lxjhb/archive/2007/11/09/1876152.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: