zoukankan
html css js c++ java
(转) 在ASP.NET中页面传值的几种方式
2007
-
04
-
04
09
:05一、目前在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
"
]
二、如果在两个页面间需要大量的参数要传传递,如数据查询等页面时,用1 - 6的方法传值及其不便,而第
7
种方法确有一独特的优势!但使用该方法时需要一定的设置,现简单介绍一下该方法的使用方式:
以查询数据页面为例:
在查询页面中设置如下公有属性(QueryPage.aspx):
public
class
QueryPage : System.Web.UI.Page
{
protected
System.Web.UI.WebControls.TextBox txtStaDate;
protected
System.Web.UI.WebControls.TextBox txtEndDate;
/**/
/**/
/**/
///
///
开始时间
///
public
string
StaDate
{
get
{
return
this
.txtStaDate.Text;}
set
{
this
.txtStaDate.Text
=
value;}
}
/**/
/**/
/**/
///
///
结束时间
///
public
string
EndDate
{
get
{
return
this
.txtEndDate.Text;}
set
{
this
.txtEndDate.Text
=
value;}
}
.
private
void
btnEnter_Click(
object
sender, System.EventArgs e)
{
Server.Transfer(
"
ResultPage.aspx
"
);
}
}
在显示查询结果页面(ResultPage.aspx):
public
class
ResultPage : System.Web.UI.Page
{
private
void
Page_Load(
object
sender, System.EventArgs e)
{
//
转换一下即可获得前一页面中输入的数据
QueryPage queryPage
=
( QueryPage )
Context.Handler
;
Response.Write(
"
StaDate:
"
);
Response.Write( queryPage.StaDate );
Response.Write(
"
EndDate:
"
);
Response.Write( queryPage.EndDate );
}
}
三、如果有许多查询页面共用一个结果页面的设置方法:
在这种方式中关键在于“ QueryPage queryPage
=
( QueryPage )
Context.Handler
; ”的转换,只有转换不依赖于特定的页面时即可实现。
如果让所有的查询页面都继承一个接口,在该接口中定义一个方法,该方法的唯一作用就是让结果页面获得构建结果时所需的参数,就可实现多页面共享一个结果页面操作!
1
、先定义一个类,用该类放置所有查询参数:
/**/
/**/
/**/
///
///
结果页面中要用到的值
///
public
class
QueryParams
{
private
string
staDate;
private
string
endDate;
/**/
/**/
/**/
///
///
开始时间
///
public
string
StaDate
{
get
{
return
this
.staDate;}
set
{
this
.staDate
=
value;}
}
/**/
/**/
/**/
///
///
结束时间
///
public
string
EndDate
{
get
{
return
this
.endDate;}
set
{
this
.endDate
=
value;}
}
}
2
、接口定义:
/**/
/**/
/**/
///
///
定义查询接口。
///
public
interface
IQueryParams
{
/**/
/**/
/**/
///
///
参数
///
QueryParams Parameters
{
get
;}
}
3
、查询页面继承IQueryParams接口(QueryPage.aspx):
/**/
/**/
/**/
///
///
查询页面,继承接口
///
public
class
QueryPage : System.Web.UI.Page, IQueryParams
{
protected
System.Web.UI.WebControls.TextBox txtStaDate;
protected
System.Web.UI.WebControls.TextBox txtEndDate;
private
QueryParams queryParams;
/**/
/**/
/**/
///
///
结果页面用到的参数
///
public
QueryParams Parameters
{
get
{
return
queryParams;
}
}
.
private
void
btnEnter_Click(
object
sender, System.EventArgs e)
{
//
赋值
queryParams
=
new
QueryParams();
queryParams.StaDate
=
this
.txtStaDate.Text;
queryParams.EndDate
=
this
.txtEndDate.Text
Server.Transfer(
"
ResultPage.aspx
"
);
}
}
4
、别外的页面也如此设置
5
、接收页面(ResultPage.aspx):
public
class
ResultPage : System.Web.UI.Page
{
private
void
Page_Load(
object
sender, System.EventArgs e)
{
QueryParams queryParams
=
new
QueryParams();
IQueryParams queryInterface;
//
实现该接口的页面
if
(
Context.Handler
is
IQueryParams)
{
queryInterface
=
( IQueryParams )
Context.Handler
;
queryParams
=
queryInterface.Parameters;
}
Response.Write(
"
StaDate:
"
);
Response.Write( queryParams.StaDate );
Response.Write(
"
EndDate:
"
);
Response.Write( queryParams.EndDate );
}
}
在调用的页面
<%@
Reference
Page = "WebForm1.aspx" %>
WebForm1 fp=(WebForm1)Context.Handler;
this.TextBox1.Text=fp.name; //name 是第一页的public变量
查看全文
相关阅读:
(转)修改Android解锁界面
linux terminal 快捷键
(转)Android蓝牙开发浅析
(转)android 编译单个模块
(转)Android关机AppWidget的实现
MyEclipse修改页面模板(JSP和HTML等) 分类: WEB项目应用 20100131 00:03 698人阅读 评论(1) 收藏
定时任务:Timer类、TimerTask类 分类: java 20100317 22:01 551人阅读 评论(0) 收藏
Socket读取输入流 分类: java 20100322 17:38 3330人阅读 评论(0) 收藏
[Microsoft][SQLServer 2000 Driver for JDBC]Object has been closed. 分类: 开发常见问题解决方案 20100318 22:05 1106人阅读 评论(0) 收藏
3/17/10 9:55:59 AM CST: [INFO] User settings file does not exist C:/Documents and Settings/Administrator/.m2/settings.xml 分类: 开发常见问题解决方案 20100317 10:20 3448人阅读 评论(4) 收藏
原文地址:https://www.cnblogs.com/suneryong/p/730225.html
最新文章
当年歪诗二首
当年歪文一篇
判断数abcdef能否被11、12整除
判断一个整数是否平方数
求不大于n的所有素数
javascript用感
asp.net 邮件发送
DOM下经常用到属性或方法
window.open窗口打开参数
log4net的使用
热门文章
NHibernate Session的管理
错误解决
优化myEclipse的开启速度(转载)
JFreeChart使用初体验
div定位到某个HTML元素中
(转)android WebView loadData不能解析(找不到网页)
(转)Preference的使用
(转)android linux 关机流程
ADB server didn't ACK问题
android 蓝牙源码分析
Copyright © 2011-2022 走看看