请教个问题,有两个页面,a.aspx,b.aspx如何在a.aspx.cs里给b.apsx里的控件赋值,如控件label ,
Url,Session,Cookie这些我知道,不用这些方法能直接赋值吗?请仔细说明步聚,立马给分
谢谢

解决方案 »

  1.   

    我没有这样做过 但是听起来好象可以实现的.
    你首先把b.aspx.cs文件中需要通过a.aspx.cs来控制的控件的访问权限修改为public,然后在a.aspx.cs中通过命名空间来访问应该可以实现吧?但是我想这里会存在一个问题,在页面(b.aspx)没有完成page_load之前,很对控件对象都是没有实例化的,这样操作是否会出现null引用呢?我没做过,我不知道,你自己可以试下或者找高手.
    你的要求好奇怪哦,为什么不直接传参数来控制呢?
      

  2.   

    我在想有没有直接能赋值的
    比如a.aspx.cs里
    lbltitle.text="Access";
    Response.Redirect("b.aspX");
    而lbltitle控件属于b.aspx页里的
      

  3.   

    你是用window.open打开的吗?如果是,可以用类似以下的方法
    a.aspx.cs
    Response.Write("<script language='JavaScript'>opener.Form1.Label1.Value='123';window.close()</script>");//Form1为b页面的表单名,Label1为b页面的控件名
      

  4.   

    我在想有没有直接能赋值的
    比如a.aspx.cs里
    lbltitle.text="Access";
    Response.Redirect("b.aspX");
    而lbltitle控件属于b.aspx页里的
    ------------------------------------------------------好象没有这样的,一般都是在子窗口给父窗口的控件赋值的吧
      

  5.   

    to sukaru(逍遥子) 
    你说的访问权限是指b.asp.cs里
    ....
    namespace wengbee.wengbee_manage
    {
    /// <summary>
    /// Info_Message 的摘要说明。
    /// </summary>
    public class Info_Message : System.Web.UI.Page
    {
    public System.Web.UI.WebControls.Label Info_Message_Title;
    public System.Web.UI.WebControls.Label Info_Message_Contents;...
    这两个吗?
    这样的话那在a.aspx里怎么引用呢,要不的话错误他找不到定义空间或类也!
      

  6.   

    a.aspx:
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;namespace myclass.Server.Transfer
    {
    /// <summary>
    /// y_page 的摘要说明。
    /// </summary>
    public class y_page : System.Web.UI.Page
    {
    protected System.Web.UI.WebControls.TextBox TextBox1;
    protected System.Web.UI.WebControls.TextBox TextBox2;
    protected System.Web.UI.WebControls.Button Button1;

    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    } #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.Button1.Click += new System.EventHandler(this.Button1_Click);
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion
    /// <summary>
    /// 创建TextBox1的get返回值的属性
    /// </summary>
    public string Var1
    {
    get
    { return TextBox1.Text.Trim();}
    }
    /// <summary>
    /// 创建TextBox2的get返回值的属性
    /// </summary>
    public string Var2
    {
    get
    { return TextBox2.Text.Trim();}
    } private void Button1_Click(object sender, System.EventArgs e)
    {
    Server.Transfer("m_page.aspx");
    }
    }
    }b.aspx
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Web.Handlers;namespace myclass.Server.Transfer
    {
    /// <summary>
    /// m_page 的摘要说明。
    /// </summary>
    public class m_page : System.Web.UI.Page
    {
    protected System.Web.UI.WebControls.Label Label1;
    protected System.Web.UI.WebControls.Label Label2;

    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    //create instance of source web form 
    y_page wf1; 
    //get reference to current handler instance 
    wf1=(y_page)Context.Handler; 
    Label1.Text=wf1.Var1; 
    Label2.Text=wf1.Var2;  } #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion
    }
    }
    这个方法应该没问题