Я читал о создании динамического управления в ASP.NET этот кусок текста:Динамический контроль создание
... При использовании динамического контроля, вы должны помнить, что они не будут существовать только до следующего постбэка , ASP.NET не воссоздает динамически добавленный элемент управления . Если вам нужно повторно создать элемент управления несколько раз, вы должны выполнить создание элемента управления в обработчике событий Page .Load . У этого есть дополнительное преимущество , позволяющее вам использовать состояние просмотра с вашим динамическим управлением . Даже если посмотреть состояние обычно восстанавливается до события Page.Load , если вы создаете элемент управления в обработчике события Page.Load, ASP.NET будет применяться любому состоянию информации, которую он имеет после Обработчик события. Этот процесс является автоматическим ...
Я хотел бы попробовать это на примере создать кнопку декларативно -
<asp:Button ID="Button1" runat="server" Text="Button"
onclick="Button1_Click" />
и динамически за кодовыми 5 флажков -
protected void Page_Load(object sender, EventArgs e)
{
for (int i = 0; i <= 5; i++)
{
var chBox = new HtmlInputCheckBox();
Controls.Add(chBox);
}
}
Но когда я проверяю некоторые флажки и нажимаю кнопку, после обратной передачи все флажки состояния стираются. Это означает, что ASP.NET не управляет состояниями представления динамических элементов управления автоматически? Я попытался включить состояние просмотра для каждого из флажков и для всей страницы, , но это не работает. Может кто-нибудь объяснить: 1. Почему это так? 2. Как этого избежать?
Hi. См. Обновленный код в моем комментарии, надеюсь, что он сработает. Если нет, напишите мне комментарий, и я посмотрю, смогу ли я помочь. – Kirtan