.Net编程

Asp.net页面之间传“大量的参数”

日期:2015/6/28来源: IT猫扑网

  除了常用的Get,Post,Session,Application等页面间可传递参数的方法,还有新的方法,这应该是ASP.NET独有的吧

  B页面取A页面的值

  页面A代码

  public partial class Default : System.Web.UI.Page

  {

  protected void Page_Load(object sender, EventArgs e)

  {

  }

  public string F

  {

  get { return this.TextBox1.Text.ToString(); }

  set { this.TextBox1.Text = value; }

  }

  public string M

  {

  get { return this.TextBox2.Text.ToString(); }

  set { this.TextBox2.Text = value; }

  }

  protected void Button1_Click(object sender, EventArgs e)

  {

  Server.Transfer("Default2.aspx");

  // 注意下,地址栏没变

  //用Response.Redirect不行……

  //Response.Redirect("Default2.aspx");

  //这的解释https://topic.csdn.net/t/20051227/21/4484983.html

  }

  }

  页面B的代码

  Code

  public partial class Default2 : System.Web.UI.Page

  {

  protected void Page_Load(object sender, EventArgs e)

  {

  Default s;

  if (Context.Handler is Default)

  {

  s = (Default)Context.Handler;

  Label1.Text = s.F + "---"+ s.M;

  }

  }

  }

  应该注意到,页面Default.aspx.cs本身就是一个类,这样的话可以在页面二中直接使用这个类,将页面一需要传递的参数

  封装一下,供外界访问

  一个页面接受多个页面传递的参数,对结果统一处理

  1.新建参数类及接

  /**//// <summary>

  ///QueryParams 的摘要说明

  /// </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; }

  }

  }

  /**//// <summary>

  /// 定义查询接口。

  /// </summary>

  public interface IQueryParams

  {

  /**//// <summary>

  /// 参数

  /// </summary>

  QueryParams Parameters{get;}

  }

#p#副标题#e#

  2.多个页面中要继承该接口

  public partial class Default3 : System.Web.UI.Page,IQueryParams

  {

  private QueryParams param;

  public QueryParams Parameters

  {

  get

  {

  return param;

  }

  }

  protected void Page_Load(object sender, EventArgs e)

  {

  }

  protected void Button1_Click(object sender, EventArgs e)

  {

  param = new QueryParams();

  param.StaDate = this.TextBox1.Text.ToString();

  param.EndDate = this.TextBox2.Text.ToString();

  Server.Transfer("Default4.aspx");

  }

  }

  3.别的页面同样处理

  4.统一处理页面

  public partial class Default4 : System.Web.UI.Page

  {

  protected void Page_Load(object sender, EventArgs e)

  {

  QueryParams queryParams = new QueryParams();

  IQueryParams queryInterface;

  //实现该接口的页面

  //与Default2.asp相比,主要是Context.Handler的类型不同

  if (Context.Handler is IQueryParams)

  {

  queryInterface = (IQueryParams)Context.Handler;

  queryParams = queryInterface.Parameters;

  }

  Label1.Text = "StaDate:" + queryParams.StaDate + "<br/>EndDate:" + queryParams.EndDate;

  }

  }

  注意下"Response.Redirect(url)和Server.Transfer(url)的用法"是不同的……

  还有"Context.Handler"

相关文章

相关下载

网友评论

我要评论...
    没有更早的评论了
    取消