У меня есть UserControl, наследующий от другого, и мой вопрос прост. Страница элемента управления загружается первой или страница базового класса загружается первой?
ASP.NET Inherited UserControl, вопрос о последовательности событий
Ответы (3)
«Страница вызывает метод события OnLoad на странице, затем рекурсивно делает то же самое для каждого дочернего элемента управления, который делает то же самое для каждого из своих дочерних элементов управления, пока страница и все элементы управления не будут загружены».
По этой ссылке: http://msdn.microsoft.com/en-us/library/ms178472.aspx
Итак, чтобы ответить прямо, событие Page_Load вызывается перед событием загрузки в пользовательских элементах управления.
Если вы говорите о фактическом наследовании, а не о композиции управления, тогда применяются все стандартные правила объектно-ориентированного программирования.
Поскольку это не отдельные объекты, в вашем элементе управления есть только одно событие Load, и может быть только один метод Page_Load, если только вы явно не скроете его с помощью новый модификатор. Итак, по сути, нет никакой разницы между загрузкой дочерней страницы и загрузкой родительской страницы... они одно и то же.
Я считаю, что Page_Load элемента управления должен срабатывать первым. За исключением события Page_Init, все другие инициирующие события происходят вверх по иерархии элементов управления.
Редактировать: я ошибаюсь. Страница запускает событие загрузки, затем рекурсивно вызывает его для дочерних элементов управления, которые рекурсивно вызывают его для своих дочерних элементов управления и т. д. Виноват...