ASP.NET Inherited UserControl, вопрос о последовательности событий

У меня есть UserControl, наследующий от другого, и мой вопрос прост. Страница элемента управления загружается первой или страница базового класса загружается первой?


person BadRaabutation    schedule 11.01.2010    source источник


Ответы (3)


«Страница вызывает метод события OnLoad на странице, затем рекурсивно делает то же самое для каждого дочернего элемента управления, который делает то же самое для каждого из своих дочерних элементов управления, пока страница и все элементы управления не будут загружены».

По этой ссылке: http://msdn.microsoft.com/en-us/library/ms178472.aspx

Итак, чтобы ответить прямо, событие Page_Load вызывается перед событием загрузки в пользовательских элементах управления.

person Dylan Vester    schedule 11.01.2010

Если вы говорите о фактическом наследовании, а не о композиции управления, тогда применяются все стандартные правила объектно-ориентированного программирования.

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

person Josh    schedule 11.01.2010

Я считаю, что Page_Load элемента управления должен срабатывать первым. За исключением события Page_Init, все другие инициирующие события происходят вверх по иерархии элементов управления.

Редактировать: я ошибаюсь. Страница запускает событие загрузки, затем рекурсивно вызывает его для дочерних элементов управления, которые рекурсивно вызывают его для своих дочерних элементов управления и т. д. Виноват...

person Josh Anderson    schedule 11.01.2010