IT猫扑网:您身边最放心的安全下载站! 最新更新|软件分类|软件专题|手机版|论坛转贴|软件发布

您当前所在位置:首页网络编程.Net编程 → Asp.net页面之间传“大量的参数”

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

时间:2015/6/28来源:IT猫扑网作者:网管联盟我要评论(0)

  除了常用的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"

关键词标签:Asp.net

相关阅读

文章评论
发表评论

热门文章 手把手教你用好LINQ to SQL手把手教你用好LINQ to SQL在.NET环境下为网站增加IP过滤功能在.NET环境下为网站增加IP过滤功能ASP.NET 如何避免页面重新整理时重复送出ASP.NET 如何避免页面重新整理时重复送出用Asp.net扩展ExtJS用Asp.net扩展ExtJS

相关下载

人气排行 asp.net表单提交方法GET\POST在ASP.NET中如何判断用户IE浏览器的版本Asp.net中messagebox的实现方法Asp.net中的web.config配置在ASP.NET MVC中实现大文件异步上传用Iformattable接口控制.Net中文本格式c#.Net经典面试题目用Asp.net扩展ExtJS