用server.transfer传递多个参数

原创 2011年01月11日 21:23:00

如果有许多查询页面共用一个结果页面的设置方法:
在这种方式中关键在于“   QueryPage   queryPage   =   (   QueryPage   )Context.Handler;   ”的转换,只有转换不依赖于特定的页面时即可实现。
如果让所有的查询页面都继承一个接口,在该接口中定义一个方法,该方法的唯一作用就是让结果页面获得构建结果时所需的参数,就可实现多页面共享一个结果页面操作!

1、先定义一个类,用该类放置所有查询参数:
///   <summary>
///   结果页面中要用到的值
///   </summary>
public   class   QueryParams
{
private   string   staDate;
private   string   endDate;

///   <summary>
///   开始时间
///   </summary>
public   string   StaDate
{
get{   return   this.staDate;}
set{this.staDate   =   value;}
}
///   <summary>
///   结束时间
///   </summary>
public   string   EndDate
{
get{   return   this.endDate;}
set{this.endDate   =   value;}
}
}

2、接口定义:
///   <summary>
///   定义查询接口。
///   </summary>
public   interface   IQueryParams
{
///   <summary>
///   参数
///   </summary>
QueryParams   Parameters{get;}
}

3、查询页面继承IQueryParams接口(QueryPage.aspx):
      
///   <summary>
///查询页面,继承接口
///   </summary>
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;
      ...
///   <summary>
///   结果页面用到的参数
///   </summary>
      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(   " <br/> EndDate: "   );
Response.Write(   queryParams.EndDate   );
    }
}

相关文章推荐

C#: server.transfer 在两个ASP.NET页面之间传递值

ASP.NET提供了卓越的事件驱动编程模型,让开发者简化了应用程序的总体设计,但是这个也造成了它固有的一些问题,例如,使用传统的ASP里,我们可以通过使用POST方法很容易地实现页面间传递值,同样的事...

CAS server 自定义认证方式和返回多个参数

Mac上搭建cas server

利用zend framework的Zend_File_Transfer_Adapter_Http类实现多个图片的上传

1、首先,我们在页面上添加file控件,点击add按钮之后就可以多增加一个file。     ...

转:Server.Transfer和Response.Redirect 的区别

查了些文档,发现两者区别还是很明显的。根本上,Response是叫浏览器去重新转向到指定的网页,而Server自然是发生在服务器端为主了,因此会有以下区别:1. Server.Transfer只能够转...

Response.Redirect与Server.Transfer区别

执行过程: 1、浏览器ASP文件请求->服务器执行->遇到response.redirect语句->服务器发送response.redirect后面的地址给客户机端的浏览器->浏览器请求执行新的...

ASP.NET MVC 3实现类似于Server.Transfer的效果

ASP.NET MVC的页面跳转 当我们在使用ASP.NET MVC实现页面跳转的时候,常用的应该是: RedirectRedirectToActionRedirectToRoute或者在...
  • educast
  • educast
  • 2011年12月08日 21:15
  • 1222

URL、Session、Cookies、Server.Transfer、Application和跨页面传送。

URL、Session、Cookies、Server.Transfer、Application和跨页面传送。1.URL传值这是经典的传值方式,这种方法的使用非常简单,不过所传递的值是会显示在浏览器的地...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用server.transfer传递多个参数
举报原因:
原因补充:

(最多只允许输入30个字)