Web 用户控件在以编程方式创建时引发错误
本文关键字:创建 错误 方式 编程 用户 控件 Web | 更新日期: 2023-09-27 18:30:39
我有一个用户控件。webcontrol.ascx
<div runat="server" id="abc"></div>
在webcontrol.ascx.cs中,我有一个添加类名的方法
public void ABCmethod(){ abc.Attributes["class"] = "className" };
当我以默认方式创建它时.aspx以声明方式<uc:WebControl runat="server" id=wc1" />
,此 ABC方法不会引发任何异常。
但是当我以编程方式创建它时,
protected void Page_Load(object sender, EventArgs e)
{
WebControl wc1 = new WebControl();
wc1.ABCmethod();
}
这将引发错误。说 abc 是一个对象引用,而不是设置为对象的实例。
我认为您需要使用此处示例中的LoadControl
方法
更具体地说,您需要类似以下代码的内容:
protected void Page_Load(object sender, EventArgs e)
{
WebControl myControl = (WebControl)LoadControl("~/Controls/webControl");
myControl.ABCMethod();
}
还需要将控件添加到占位符控件,否则该控件将不可见。