ASP.NET的页面间传值方法
1、表单提交,
<form action= "target.aspx" method = "post" name = "form1">
<input name = "param1" value = "1111"/>
<input name = "param2" value = "2222"/>
</form>
....
form1.submit();
....
此种方在ASP。NET中无效,因为ASP。NET的表单总是提交到自身页面,如果要提交到别一页面,需要特殊处理。
2、链接地址传送
接收页面: string str = Request["param1"]
3、Session共享
发送页面:Session("param1") = "1111";
按收页面 string str = Session("param1").ToString();
4、Application共享
发送页面: Application("param1") = "1111";
按收页面: string str = Application("param1").ToString();
此种方法不常使用,因为Application在一个应用程序域范围共享,所有用户可以改变及设置其值,故只应用计数器等需要全局变量的地方。
5、Cookie
6、Response.Redirect()方式
Response.Redirect("target.aspx?param1=1111¶m2=2222")
接收页面: string str = Request["param1"]
7、Server.Transfer()方式。
Server.Transfer("target.aspx?param1=1111¶m2=2222")
接收页面: string str = Request["param1"]
8、跨网页公布(Cross-Page Posting)方式
ASP.NET2.0新技术
二、如果在两个页面间需要大量的参数要传传递,如数据查询等页面时,用1 - 6的方法传值及其不便,而第 7 种方法确有一独特的优势!但使用该方法时需要一定的设置,现简单介绍一下该方法的使用方式:
以查询数据页面为例:
在查询页面中设置如下公有属性(QueryPage.aspx):
2、接口定义:
<form action= "target.aspx" method = "post" name = "form1">
<input name = "param1" value = "1111"/>
<input name = "param2" value = "2222"/>
</form>
....
form1.submit();
....
此种方在ASP。NET中无效,因为ASP。NET的表单总是提交到自身页面,如果要提交到别一页面,需要特殊处理。
2、链接地址传送
接收页面: string str = Request["param1"]
3、Session共享
发送页面:Session("param1") = "1111";
按收页面 string str = Session("param1").ToString();
4、Application共享
发送页面: Application("param1") = "1111";
按收页面: string str = Application("param1").ToString();
此种方法不常使用,因为Application在一个应用程序域范围共享,所有用户可以改变及设置其值,故只应用计数器等需要全局变量的地方。
5、Cookie
6、Response.Redirect()方式
Response.Redirect("target.aspx?param1=1111¶m2=2222")
接收页面: string str = Request["param1"]
7、Server.Transfer()方式。
Server.Transfer("target.aspx?param1=1111¶m2=2222")
接收页面: string str = Request["param1"]
8、跨网页公布(Cross-Page Posting)方式
ASP.NET2.0新技术
二、如果在两个页面间需要大量的参数要传传递,如数据查询等页面时,用1 - 6的方法传值及其不便,而第 7 种方法确有一独特的优势!但使用该方法时需要一定的设置,现简单介绍一下该方法的使用方式:
以查询数据页面为例:
在查询页面中设置如下公有属性(QueryPage.aspx):
1
public class QueryPage : System.Web.UI.Page
2
{
3
protected System.Web.UI.WebControls.TextBox txtStaDate;
4
protected System.Web.UI.WebControls.TextBox txtEndDate;
5

6
/// <summary>
7
/// 开始时间
8
/// </summary>
9
public string StaDate
10
{
11
get{ return this.txtStaDate.Text;}
12
set{this.txtStaDate.Text = value;}
13
}
14
/// <summary>
15
/// 结束时间
16
/// </summary>
17
public string EndDate
18
{
19
get{ return this.txtEndDate.Text;}
20
set{this.txtEndDate.Text = value;}
21
}
22
.
23
private void btnEnter_Click(object sender, System.EventArgs e)
24
{
25
Server.Transfer("ResultPage.aspx");
26
}
27
}
28
在显示查询结果页面(ResultPage.aspx):
2

3

4

5


6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22


23

24

25

26

27

28

1
public class ResultPage : System.Web.UI.Page
2
{
3
private void Page_Load(object sender, System.EventArgs e)
4
{
5
//转换一下即可获得前一页面中输入的数据
6
QueryPage queryPage = ( QueryPage )Context.Handler;
7
8
Response.Write( "StaDate:" );
9
Response.Write( queryPage.StaDate );
10
Response.Write( "<br/>EndDate:" );
11
Response.Write( queryPage.EndDate );
12
}
13
}
14

2

3

4

5

6

7

8

9

10

11

12

13

14

三、如果有许多查询页面共用一个结果页面的设置方法:
在这种方式中关键在于“ QueryPage queryPage = ( QueryPage )Context.Handler; ”的转换,只有转换不依赖于特定的页面时即可实现。
如果让所有的查询页面都继承一个接口,在该接口中定义一个方法,该方法的唯一作用就是让结果页面获得构建结果时所需的参数,就可实现多页面共享一个结果页面操作!
1、先定义一个类,用该类放置所有查询参数:
1
/// <summary>
2
/// 结果页面中要用到的值
3
/// </summary>
4
public class QueryParams
5
{
6
private string staDate;
7
private string endDate;
8
/// <summary>
9
/// 开始时间
10
/// </summary>
11
public string StaDate
12
{
13
get{ return this.staDate;}
14
set{this.staDate = value;}
15
}
16
/// <summary>
17
/// 结束时间
18
/// </summary>
19
public string EndDate
20
{
21
get{ return this.endDate;}
22
set{this.endDate = value;}
23
}
24
}

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

2、接口定义:
1
以下为引用的内容:
2
/// <summary>
3
/// 定义查询接口。
4
/// </summary>
5
public interface IQueryParams
6
{
7
/// <summary>
8
/// 参数
9
/// </summary>
10
QueryParams Parameters{get;}
11
}
3、查询页面继承IQueryParams接口(QueryPage.aspx):
2

3

4

5

6

7

8

9

10

11

1
以下为引用的内容:
2
/// <summary>
3
///查询页面,继承接口
4
/// </summary>
5
public class QueryPage : System.Web.UI.Page, IQueryParams
6
{
7
protected System.Web.UI.WebControls.TextBox txtStaDate;
8
protected System.Web.UI.WebControls.TextBox txtEndDate;
9
private QueryParams queryParams;
10

11
/// <summary>
12
/// 结果页面用到的参数
13
/// </summary>
14
public QueryParams Parameters
15
{
16
get
17
{
18
return queryParams;
19
}
20
}
21
.
22
private void btnEnter_Click(object sender, System.EventArgs e)
23
{
24
//赋值
25
queryParams = new QueryParams();
26
queryParams.StaDate = this.txtStaDate.Text;
27
queryParams.EndDate = this.txtEndDate.Text
28
29
Server.Transfer("ResultPage.aspx");
30
}
31
}
32
转载

2

3

4

5

6

7

8

9

10


11

12

13

14

15

16

17

18

19

20

21


22

23

24

25

26

27

28

29

30

31

32
