Загрузка WebControl внутри другого пользовательского элемента управления: метод загрузки никогда не запускается - PullRequest
0 голосов
/ 23 марта 2012

У меня есть простой класс, унаследованный от 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?

1 Ответ

2 голосов
/ 23 марта 2012

Добавьте myItem в коллекцию Controls вашего пользовательского элемента управления.Обычно вы делаете это (а также создаете экземпляры дочерних элементов управления), переопределяя метод CreateChildControls:

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