Почему некоторые события в дочерних элементах управления запускаются в обратном порядке? ASP.Net цикл страниц?


Из ASP.Net статья жизненного цикла Страницы на MSDN :

Хотя Init и Load рекурсивно происходят на каждом элементе управления, они происходят в обратном порядке. Событие Init (а также событие Unload) для каждого дочернего элемента управления происходит до того, как соответствующее событие вызывается для его контейнера (снизу вверх). Однако событие Load для контейнера происходит до событий Load для его дочерних элементов управления (сверху вниз).

Это имеет большой смысл для события unload, но почему для init? А как насчет других событий?

С уважением,

1 2

1 ответ:

Это связано с тем, как создаются эти страницы-пользовательские элементы управления являются свойствами класса страницы. Они создаются (и, следовательно, инициализируются) по мере инициализации класса, что гарантирует доступность их экземпляров во время события init конструктора и страницы.

Тогда, когда нагрузка, пререндер и события render происходят события страницы первая и каскады событий за все, что внутри него.

Когда выгрузка и утилизация приходят вокруг объектов собственности рассматриваются первый раз.

Модель событий страницы веб-формы немного слишком сложна, ИМХО.