我有一个用户控件。 webcontrol.ascx
<div runat="server" id="abc"></div>
在webcontrol.ascx.cs中的,我有一个添加类名
的方法public void ABCmethod(){ abc.Attributes["class"] = "className" };
当我在default.aspx中以声明方式<uc:WebControl runat="server" id=wc1" />
创建它时,这个ABC方法不会抛出任何异常。
但是当我以编程方式创建它时,
protected void Page_Load(object sender, EventArgs e)
{
WebControl wc1 = new WebControl();
wc1.ABCmethod();
}
这会引发错误。假设abc是一个未设置为对象实例的Object引用。
答案 0 :(得分:1)
我认为您需要使用示例here
中的LoadControl
方法
更具体地说,你需要类似这样的代码:
protected void Page_Load(object sender, EventArgs e)
{
WebControl myControl = (WebControl)LoadControl("~/Controls/webControl");
myControl.ABCMethod();
}
您还需要将控件添加到占位符控件,否则控件将不可见。