У меня есть страница ASP.NET WebForms с несколькими кнопками, добавленными программно следующим образом:
private void AddExportButton(Control control, Action clickAction) {
LinkButton exportButton = new LinkButton {
Text = "Export",
EnableViewState = false /*Buttons will be recreated on each Postback anyway.*/
};
exportButton.Click += (sender, e) => clickAction();
control.Controls.Add(exportButton);
}
Теперь это работает, пока метод AddExportButton()
вызывается по пути от метода OnLoad()
или OnPreLoad()
. Однако он не запускает действие обработчика, когда AddExportButton()
вызывается из метода OnLoadComplete()
.
Я хотел бы добавить/создать кнопки также при вызове другого обработчика событий (из раскрывающегося списка). Это происходит только после OnLoad(), что сломает мой код.
Почему это так и как в этом случае использовать анонимные методы в качестве обработчиков событий?
Посмотрите эту замечательную памятку о жизненном цикле страниц ASP.NET Леона Андрианаривони для получения дополнительной информации о порядок создания страницы/элемента управления.