以编程方式创建时,Web用户控件抛出错误

时间:2013-09-08 16:47:49

标签: c# asp.net user-controls

我有一个用户控件。 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引用。

1 个答案:

答案 0 :(得分:1)

我认为您需要使用示例here

中的LoadControl方法

更具体地说,你需要类似这样的代码:

protected void Page_Load(object sender, EventArgs e)
{
    WebControl myControl = (WebControl)LoadControl("~/Controls/webControl");
    myControl.ABCMethod();
}

您还需要将控件添加到占位符控件,否则控件将不可见。