现在有一个用户控件SendTos.ascx
里面有一个属性是
        public string SendTo
        {
            get { return _SendTo; }
            set { _SendTo = value; }        }
有一个页面index.aspx
在page_load事件里面
SendTos to = new SendTos();
 to.SendTo = _SendTo;
给用户控件属性赋值在SendTos.ascx中
this.txtSend=SendTo;
提示错误,SendTo为 空,也就是说没有赋上值。
不知应该怎么样写啊,求指教.............

解决方案 »

  1.   

    http://blog.csdn.net/zhaili1978/article/details/5811364
      

  2.   

    在SendTos.ascx中
    this.txtSend=_SendTo;是_SendTo不是SendTo
      

  3.   

    在page_load事件里面
    SendTos to = new SendTos();
     to.SendTo = _SendTo;那你首先确认这里有值吗
      

  4.   

    因为用户控件的page_load 要先于page 的page_load 先执行。你换个事件写,在page 中 在page_load 之前的事件 
      

  5.   

    能给我介绍下吗,我查了下可以加个Page_Prerender事件,但我在CS文件加入之后根本不执行
      

  6.   


    protected override void OnPreLoad(EventArgs e)
            {
                base.OnPreLoad(e);
            }写这里
      

  7.   

    我测试了下页面先加载page_load的
      

  8.   

    我把赋值代码 都写在
    protected override void OnPreLoad(EventArgs e)
    {
    base.OnPreLoad(e);
    }
    这个事件是先于page_load执行的,但还是获取不到值
      

  9.   

    SendTos to = new SendTos();
     to.SendTo = _SendTo;
    ---------------------------这的问题,你这里是实例化了另外的一个实例和你页面上的SendTos 没关系你要FindControl("SendTos") 然后把它转换成 SendTos 在操作
      

  10.   

    FindControl("SendTos") 然后把它转换成 SendTos 在操作这个地方应该怎样写,我对用户控件没怎么用过,大家好人做到底吧谢了
      

  11.   

    UserControl to=(UserControl)Page.FindControl("SendTos");
    我这样写不对啊,各位帮帮忙吧
      

  12.   

    SendTos to =FindControl("SendTosID") as SendTos ;
    if(to!=null)
    {
        to.SendTo = _SendTo;
    }
      

  13.   

    App_Code 下定义一个TestControl.cs
    其中定义接口:public interface TestControl
    {
        string Name { get; set; }
    }SendTos.ascx内容为:public partial class SendTos : System.Web.UI.UserControl, TestControl
    {
        private string strName = string.Empty;
        public string Name
        {
            get
            {
                return strName;
            }
            set
            {
                strName = value;
            }
        }    protected void Page_Load(object sender, EventArgs e)
        {    }}
    主页面内容为:public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            object oSendTo = LoadControl("sendTos.ascx");
            TestControl oTest = oSendTo as TestControl;
            oTest.Name = "TESTTEST";        this.Controls.Add(oSendTo as Control);
        }
    }FindControl的类似
      

  14.   

    动态添加的 能控制 SendTos.ascx的 Page_Load 在主页面的 Page_Load 里执行,这样SendTos.ascx里的 Page_Load 可以写逻辑取用相应的参数值
      

  15.   

    这样赋值怎么说 to.SendTo  未将实例引用到对象呢,郁闷了
      

  16.   

                SendTos sto = FindControl("SendTosID") as SendTos;            sto.SendTo = "1";
      

  17.   

    你的用户控件的ID 是 SendTosID 么