我有一个在页面加载中动态加载的用户控件:
protected void Page_Load(object sender, EventArgs e)
{
MyControl ctl = (MyControl)LoadControl(controlPath);
ctl.ID = "mycontrol";
this.MyControlPlaceHolder.Controls.Add(ctl);
}
页面前端:
<asp:PlaceHolder runat="server" ID="MyControlPlaceHolder"></asp:PlaceHolder>
我在页面上有一个点击事件,它启动和回发并调用我试图找到控件并设置一些属性的方法:
MyControl ctl = (MyControl)FindControl("mycontrol");
if (ctl != null){
ctl.MyProperty = true;
Response.Write("success");
}
else
Response.Write("fail");
这是回发后写入失败,所以看起来我在查找控件时做错了一些事情。做这个的最好方式是什么?
编辑:
I switched it to MyControl ctl = (MyControl)this.MyControlPlaceHolder.FindControl("mycontrol");
这使得它可以找到控件,但是,当控件在回发后加载时,它看起来好像没有设置属性。