Пользовательский серверный элемент управления ASP.NET: вложенные элементы - PullRequest
0 голосов
/ 06 апреля 2010

В aspx представлении кода мы можем кодировать так:

<asp:ListBox runat="server">
    <asp:ListItem Text="Item1" />
    <asp:ListItem Text="Item2" />
</asp:ListBox>

Однако класс ListItem не является серверным элементом управления. Как мы можем сделать это в нашем пользовательском контроле сервера? То есть, как разработать класс, подобный ListItem, который может заставить работать этот стиль разметки? Я создаю серверный элемент управления, который похож на ListBox.

Спасибо:)

Ответы [ 3 ]

1 голос
/ 06 апреля 2010

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

0 голосов
/ 11 августа 2014
protected override void RenderContents(HtmlTextWriter output)
        {

            output.Write("<div><div class=\"UserSectionHead\">");

            Label l = new Label() { Text = Label };
            TextBox t = new TextBox() { Text = Text };
            l.AssociatedControlID = t.ID;
            l.RenderControl(output);

            output.Write("</div><div class=\"UserSectionBody\"><div class=\"UserControlGroup\"><nobr>");

            t.RenderControl(output);

            output.Write("</nobr></div></div><div style=\"width:100%\" class=\"UserDottedLine\"></div>");

        }
0 голосов
/ 06 апреля 2010

Если вы хотите сделать такое тонкое с вашим контролем, вам нужно реализовать Control Designer .

Отредактировано, чтобы добавить:

А также проверьте атрибуты ParseChildren, PersistChildren, DesignerSerializationVisibility и PersistenceMode.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...