Как динамически генерировать комбинацию пользовательских элементов управления ASP.NET? - PullRequest
0 голосов
/ 18 сентября 2008

У меня есть несколько пользовательских элементов управления, скажем, A, B, C и D. На основе некоторого случайного ввода мне нужно сгенерировать их комбинацию. Например, если ввод 2a3d1a2c мне нужно показать два из A, 3 D после этого, снова A и т.д.

Мне также нужно стабилизировать клиентов, чтобы они работали правильно. Потому что каждый из этих элементов управления использует свое собственное свойство ClientID для сбора входных данных. Например, пользовательский элемент управления A внутренне генерирует ввод с именем this.ClientID + "$input1" и собирает его данные из запроса, например Request[this.ClientID + "$input1"]. Поскольку может быть более одного A, каждый A должен иметь одинаковый (unique) ClientID после обратной передачи, чтобы получить правильные входные данные из запроса.

1 Ответ

0 голосов
/ 18 сентября 2008

Чтобы добавить элементы управления динамически, вы можете использовать панель в качестве заполнителя, скажем,

<asp:Panel ID="ControlPlaceholder" runat="server" />

Затем на стороне сервера вы можете добавить к нему объекты следующим образом:

int controlCount = 0;

...

TextBox newTextBox = TextBox();
newTextBox.ID = "ctl_" + controlCount++;
ControlPlaceholder.Controls.Add(newTextBox);

Если вы добавите к нему элементы управления во время своего события Page_Load и будете использовать согласованный метод генерации идентификаторов элементов управления (например, простой подсчет выше), тогда любые состояния представления или привязки событий будут связаны с нужным объектом постбэк.

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