【问题标题】:Loading WebControl inside other custom control: Load method is never fired在其他自定义控件中加载 WebControl:永远不会触发 Load 方法
【发布时间】:2012-03-23 19:26:23
【问题描述】:

我有一个继承自 WebControl 的简单类,如下所示:

public class Instrument : WebControl
{
    private SpecialItem myItem = new SpecialItem("ABC");

    protected override void Render(HtmlTextWriter output)
    {
       output.Write("<div>");
       myItem.RenderControl(output);
       output.Write("</div>");
    }
}

将控件添加到网页后,SpecialItem 会显示,但它的内部“Load”方法永远不会触发,这使其无法使用。如果我单独使用 SpecialItem 控件,那么它会按预期工作。我如何让 SpecialItem 控件的加载方法被执行?

【问题讨论】:

    标签: c# asp.net custom-controls web-controls


    【解决方案1】:

    myItem 添加到您的自定义控件的Controls 集合中。您通常通过覆盖 CreateChildControls 方法来执行此操作(以及实例化子控件):

    protected override void CreateChildControls()
    {
        myItem = new SpecialItem("ABC");
        Controls.Add(myItem);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-23
      • 2020-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多