Как динамически добавлять пользовательские элементы управления в пользовательский элемент управления - PullRequest
0 голосов
/ 21 июля 2010

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

Как я могу это сделать.

Ответы [ 2 ]

1 голос
/ 20 января 2011

Вы хотите использовать TemplateControl.LoadControl (от которого наследуются и Page, UserControl и MasterPage). Это необходимо сделать во время события Init, чтобы работала функция обратной передачи.

void Page_Init(Object Sender, EventArgs e) {
    var control = LoadControl("Awesome.ascx");
    // ... Magic!
}
0 голосов
/ 21 июля 2010

Поместите элемент управления заполнителя на родительский элемент управления:

<asp:PlaceHolder runat="server" id="phMainHolder" />

В событии Page_Load или Page_Init вы просто создаете дочерние пользовательские элементы управления в цикле for (each) и добавляете их в заполнитель, например:

for(int i = 0; i < 10; i++) {
    ChildUC child = new ChildIC();
    phMainHolder.Controls.Add(child);
}

Это самый необходимый минимум для этого. Разумеется, вы можете установить свойства или что-то еще на своих дочерних элементах управления.

Класс ChildUC - это вымышленное имя класса для этого примера. Используйте класс и при необходимости используйте пространство имен как дополнительное, в котором оно определено, пользовательского элемента управления, который вы хотите использовать.

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