OnLoad
метод должен быть местом где Load
событие генерируется. Я лично всегда пытаюсь обработать событие, если я не должен делать дополнительную обработку вокруг генерирования события.
Я рекомендую обработать само событие при нормальных обстоятельствах.
Можно найти эту статью о жизненном цикле страницы от Microsoft полезной.
Как Вы видите выше, это действительно главным образом сводится к личному выбору, ЕСЛИ тот выбор сделан хорошо осведомлено. Лучший быстрый, но основательный обзор, который я видел, по http://weblogs.asp.net/infinitiesloop/archive/2008/03/24/onload-vs-page-load-vs-load-event.aspx
Это - действительно просто вопрос выбора. Мне это кажется странным для объекта присоединить событие к себе, особенно когда существует метод, который можно переопределить.
Я думаю, что команда ASP.NET использовала события, потому что это было моделью для Global.asa в ASP, и понизить панель для разработчиков, которые не понимают наследование и переопределение виртуальных методов.
Переопределение метода действительно требует большего знания о жизненном цикле страницы, но нет ничего "неправильно" с ним.
Даже при том, что Вы наследовались UserControl
, Я думаю, что необходимо избегать переопределения защищенных методов, если Вы не имеете к. Page_Load
есть ли, чтобы помочь Вам добавить код, это характерно для Вашего UserControl
.
Только переопределение OnLoad
если Вам нужен неограниченный контроль когда (/если) Load
событие запущено (который должен быть редким, IMO).
я думаю, что это - то же. По моему скромному мнению, С Событиями, у Вас есть еще немного гибкости, потому что можно произойти больше чем один слушатель события!
Я думаю, что существует одна потенциально значительная разница в этих двух методах.
То, к чему я обращаюсь, является способностью управлять последовательностью выполнения.
Если Вы являетесь переопределяющими, Вы знаете, когда Загрузка базовых классов произойдет, потому что Вы называете ее. Это обеспечивает больше управления, но вероятно является плохой вещью, как многие будут утверждать.
При использовании события у Вас нет гарантии с точки зрения порядка вызова. Это вынуждает Вас записать событие Load, которое должно быть агностиком о том, что суперклассы делают во время фазы Загрузки. Я думаю, что это было бы предпочтительным подходом, и возможно именно поэтому автоматически сгенерированный код VS является этим путем.