У меня есть пользовательский элемент управления, которому необходимо загрузить дочерний элемент управления при нажатии кнопки. Проблема в том, что он должен запросить элемент управления из другого класса.Программное добавление пользовательского элемента управления в ASP.NET
Таким образом, в случае нажатия кнопки, я вызываю функцию, чтобы мне мой контроль, и добавить его на страницу, как это:
UserControl ctrl = ExampleDataProvider.GetControl(some params...);
myDetailPane.Controls.Add(ctrl);
Метод GetControl выглядит следующим образом:
public static UserControl GetControl(some params...)
{
ExampleDetailPane ctrl = new ExampleDetailPane();
ctrl.Value = "12";
ctrl.Comment = string.Empty;
return ctrl;
}
Это не работает из-за жизненного цикла страницы - страница_Load дочернего элемента управления запущена, а его элементы управления имеют значение NULL.
Я знаю, что мой подход неправильный и почему, но не знаю, как лучше всего это исправить! Может ли кто-нибудь помочь?
Динамические элементы управления должны быть воссозданы при каждой обратной передаче, это хорошая ссылка о том, как сохранять динамические элементы управления и их состояние. http://www.singingeels.com/Articles/Dynamically_Created_Controls_in_ASPNET.aspx –
@Richard, +1, потому что это единственный способ сделать эту работу. Вы должны были ответить на этот вопрос вместо комментария. –