现在有一个用户控件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为 空,也就是说没有赋上值。
不知应该怎么样写啊,求指教.............
里面有一个属性是
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为 空,也就是说没有赋上值。
不知应该怎么样写啊,求指教.............
this.txtSend=_SendTo;是_SendTo不是SendTo
SendTos to = new SendTos();
to.SendTo = _SendTo;那你首先确认这里有值吗
protected override void OnPreLoad(EventArgs e)
{
base.OnPreLoad(e);
}写这里
protected override void OnPreLoad(EventArgs e)
{
base.OnPreLoad(e);
}
这个事件是先于page_load执行的,但还是获取不到值
to.SendTo = _SendTo;
---------------------------这的问题,你这里是实例化了另外的一个实例和你页面上的SendTos 没关系你要FindControl("SendTos") 然后把它转换成 SendTos 在操作
我这样写不对啊,各位帮帮忙吧
if(to!=null)
{
to.SendTo = _SendTo;
}
其中定义接口: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的类似