zoukankan      html  css  js  c++  java
  • 页面间传值的方式

    1.Session["key"]=value;

    value =Session["key"];

    2.Cookie["key"] = value;

    value = Cookie["key"];

    3.Application["key"] = value;

    value = Application["key"];

    4. ..aspx?id=2&name=chen&type=s

    value = Request.QueryString["id"];

    Response.Redirect()方式

    Server.Transfer()方式

    程序中常见的方式:

    以查询数据页面为例:
    在查询页面中设置如下公有属性(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
    {
    getreturn this.txtStaDate.Text;}
    set{this.txtStaDate.Text = value;}
    }

    /// 
    /// 结束时间
    /// 

    public string EndDate
    {
    getreturn 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; ”的转换,只有转换不依赖于特定的页面时即可实现。
    如果让所有的查询页面都继承一个接口,在该接口中定义一个方法,该方法的唯一作用就是让结果页面获得构建结果时所需的参数,就可实现多页面共享一个结果页面操作!

    先定义一个类,用该类放置所有查询参数:
    /// 
    /// 结果页面中要用到的值
    /// 

    public class QueryParams
    {
    private string staDate;
    private string endDate;

    /// 
    /// 开始时间
    /// 

    public string StaDate
    {
    getreturn this.staDate;}
    set{this.staDate = value;}
    }

    /// 
    /// 结束时间
    /// 

    public string EndDate
    {
    getreturn this.endDate;}
    set{this.endDate = value;}
    }

    }


    接口定义:
    /// 
    /// 定义查询接口。
    /// 

    public interface IQueryParams
    {
    /// 
    /// 参数
    /// 

    QueryParams Parameters{get;}
    }

    查询页面继承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");
    }

    }

    接收页面(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 );
    }

    }

     

     


     

  • 相关阅读:
    [LeetCode] Min Stack
    [LeetCode] Find Minimum in Rotated Sorted Array
    [LeetCode] Maximum Product Subarray
    [Jobdu] 题目1504:把数组排成最小的数
    [Jobdu] 题目1544:数字序列区间最小值
    Python2.3-原理之语句和语法
    Python2.5-原理之模块
    Vim2.1-Vim简明教程【CoolShell】【非原创】
    Python2.6-原理之类和oop(下)
    QT1.1-与Opencv的hello world
  • 原文地址:https://www.cnblogs.com/chenqingwei/p/1705929.html
Copyright © 2011-2022 走看看