Управление сервером Создание дочерних элементов

Я хочу знать, как вы создаете дочерние элементы для серверного элемента управления, и есть ли какая-либо документация или руководства по этому вопросу, например

<myMenu:Menu id="Menu1" runat="server">
    <myMenu:MenuItem Text="Some Text" Link="www.msdn.com"> // <--
    // ^-- Theis part how do you create child controls collection
    </myMenu:MenuItem>
</myMenu:Menu>


namespace ControlsBook2Lib.Ch08
{
[DefaultProperty("Text")]
[ToolboxData("<{0}:Menu runat=server></{0}:Menu>")]
public class Menu : WebControl
{
    protected override void RenderChildren(HtmlTextWriter writer)
    {
        base.RenderChildren(writer);
    }
}

[ToolboxData("<{0}:MenuItem runat=server></{0}:MneuItem>")] <-- this part is wrong I know
public class MenuItem : WebControl
{
    protected override void Render(HtmlTextWriter writer)
    {
        base.Render(writer);
    }
}
}  

1 ответ

Решение

Вам необходимо предоставить свойство в родительском элементе управления, которое содержит коллекцию дочерних элементов - обратите внимание, что дочерний тип не обязательно должен быть элементом управления (это может быть обычный класс).

См. Эту статью MSDN, в которой описано, как разработать такой серверный элемент управления - см. Пример, в котором примерный элемент управления содержит коллекцию класса контактов. У вас также есть пример разработки редактора коллекций для предоставления пользовательского интерфейса для его редактирования.

Другие вопросы по тегам