asp页面传值的三个方式,列举ASP.NET页面之间传递值的几种方式
1、表单提交,
表单操作=目标。“aspx”方法=“post”名称=“form 1”
输入名称=param1 值=1111/
输入名称=param2 值=2222/
/表单
.
表格1。submit();
.
此种方在ASP。网中无效,因为ASP。网的表单总是提交到自身页面,如果要提交到别一页面,需要特殊处理。
2、A href=target.aspx?param1=1111 m2=2222 链接地址传送/A
接收页面:string str=Request[param1]
3、会话共享
发送页面:Session( param 1 )= 1111 ;
按收页面string str=Session(param1 ).ToString();
4、应用共享
发送页面:Application( param 1 )= 1111 ;
按收页面:string str=应用程序( param1 ).ToString();
此种方法不常使用,因为应用在一个应用程序域范围共享,所有用户可以改变及设置其值,故只应用计数器等需要全局变量的地方。
5、饼干
6、回应。重定向()方式
回应。重定向( target.aspx?param 1=1111 m2=2222’)
接收页面:string str=Request[param1]
7、服务器。转移()方式。
服务器. Transfer(target.aspx?param 1=1111 m2=2222’)
接收页面:string str=Request[param1]
二、如果在两个页面间需要大量的参数要传传递,如数据查询等页面时,用1 - 6的方法传值及其不便,而第七种方法确有一独特的优势!但使用该方法时需要一定的设置,现简单介绍一下该方法的使用方式:
以查询数据页面为例:
在查询页面中设置如下公有属性(QueryPage.aspx):
公共类查询页面:系统.网页界面
{
受保护的系统web . com。ui。web控件。文本框txtStaDate
受保护的系统web . com。ui。web控件。文本框txtEndDate
.
///摘要
///开始时间
////摘要
公共字符串状态
{
获取{返回此。txtstadate。文本;}
设置{ this。txtstadate。文本=值;}
}
///摘要
///结束时间
////摘要
公共字符串结束日期
{
获取{返回此。txtenddate。文本;}
设置{ this。txtenddate。文本=值;}
}
.
私有void btnEnter_Click(对象发送方,系统e)
{
服务器传输(结果页。aspx’);
}
}
在显示查询结果页面(ResultPage.aspx):
公共类结果页面:系统.网页界面
{
私有void Page_Load(对象发送方,系统e)
{
//转换一下即可获得前一页面中输入的数据
QueryPage queryPage=( QueryPage)上下文。处理者;
回应。写( StaDate:);
回应。写(查询页面.StaDate);
回应写( br/结束日期:);
回应。写(查询页面.结束日期);
}
}
三、如果有许多查询页面共用一个结果页面的设置方法:
在这种方式中关键在于QueryPage queryPage=( QueryPage)上下文。处理程序;"的转换,只有转换不依赖于特定的页面时即可实现。
如果让所有的查询页面都继承一个接口,在该接口中定义一个方法,该方法的唯一作用就是让结果页面获得构建结果时所需的参数,就可实现多页面共享一个结果页面操作!
1、先定义一个类,用该类放置所有查询参数:
///摘要
///结果页面中要用到的值
////摘要
公共类查询参数
{
私有字符串斯塔德
私有字符串结束日期;
///摘要
///开始时间
////摘要
公共字符串状态
{
获取{ return this.staDate}
设置{ this.staDate=value}
}
///摘要
///结束时间
////摘要
公共字符串结束日期
{
获取{返回此。结束日期;}
设置{ this。结束日期=值;}
}
}
2、接口定义:
///摘要
///定义查询接口。
////摘要
公共接口IQueryParams
{
///摘要
///参数
////摘要
查询参数参数{ get}
}
3、查询页面继承IQueryParams接口(QueryPage.aspx):
///摘要
///查询页面,继承接口
////摘要
公共类查询页面:系统.网页,IQueryParams
{
受保护的系统web . com。ui。web控件。文本框txtStaDate
受保护的系统web . com。ui。web控件。文本框txtEndDate
私有查询参数查询参数
.
///摘要
///结果页面用到的参数
////摘要
公共查询参数参数
{
得到
{
返回查询参数
}
}
.
私有void btnEnter_Click(对象发送方,系统e)
{
//赋值
query params=new query params();
查询参数.StaDate=this。txtstadate。文本;
查询参数.EndDate=this.txtEndDate.Text
服务器传输(结果页。aspx’);
}
}
4、别外的页面也如此设置
5、接收页面(ResultPage.aspx):
公共类结果页面:系统.网页界面
{
私有void Page_Load(对象发送方,系统e)
{
query params query params=new query params();
IQueryParams查询接口
//实现该接口的页面
如果(上下文。处理程序是IQueryParams)
{
queryInterface=( IQueryParams)上下文。处理者;
queryParams=queryInterface .参数;
}
回应。写( StaDate:);
回应。写(查询参数.StaDate);
回应写( br/结束日期:);
回应。写(查询参数.结束日期);
}