Когда создание веб-элемента управления должно Вы переопределять OnLoad или реализовывать Page_Load

9
задан Glenn Slaven 28 September 2008 в 23:54
поделиться

7 ответов

OnLoad метод должен быть местом где Load событие генерируется. Я лично всегда пытаюсь обработать событие, если я не должен делать дополнительную обработку вокруг генерирования события.

Я рекомендую обработать само событие при нормальных обстоятельствах.

5
ответ дан 4 December 2019 в 13:51
поделиться

Можно найти эту статью о жизненном цикле страницы от Microsoft полезной.

3
ответ дан 4 December 2019 в 13:51
поделиться

Как Вы видите выше, это действительно главным образом сводится к личному выбору, ЕСЛИ тот выбор сделан хорошо осведомлено. Лучший быстрый, но основательный обзор, который я видел, по http://weblogs.asp.net/infinitiesloop/archive/2008/03/24/onload-vs-page-load-vs-load-event.aspx

3
ответ дан 4 December 2019 в 13:51
поделиться

Это - действительно просто вопрос выбора. Мне это кажется странным для объекта присоединить событие к себе, особенно когда существует метод, который можно переопределить.

Я думаю, что команда ASP.NET использовала события, потому что это было моделью для Global.asa в ASP, и понизить панель для разработчиков, которые не понимают наследование и переопределение виртуальных методов.

Переопределение метода действительно требует большего знания о жизненном цикле страницы, но нет ничего "неправильно" с ним.

2
ответ дан 4 December 2019 в 13:51
поделиться

Даже при том, что Вы наследовались UserControl, Я думаю, что необходимо избегать переопределения защищенных методов, если Вы не имеете к. Page_Load есть ли, чтобы помочь Вам добавить код, это характерно для Вашего UserControl.

Только переопределение OnLoad если Вам нужен неограниченный контроль когда (/если) Load событие запущено (который должен быть редким, IMO).

0
ответ дан 4 December 2019 в 13:51
поделиться

я думаю, что это - то же. По моему скромному мнению, С Событиями, у Вас есть еще немного гибкости, потому что можно произойти больше чем один слушатель события!

0
ответ дан 4 December 2019 в 13:51
поделиться

Я думаю, что существует одна потенциально значительная разница в этих двух методах.

То, к чему я обращаюсь, является способностью управлять последовательностью выполнения.

Если Вы являетесь переопределяющими, Вы знаете, когда Загрузка базовых классов произойдет, потому что Вы называете ее. Это обеспечивает больше управления, но вероятно является плохой вещью, как многие будут утверждать.

При использовании события у Вас нет гарантии с точки зрения порядка вызова. Это вынуждает Вас записать событие Load, которое должно быть агностиком о том, что суперклассы делают во время фазы Загрузки. Я думаю, что это было бы предпочтительным подходом, и возможно именно поэтому автоматически сгенерированный код VS является этим путем.

0
ответ дан 4 December 2019 в 13:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: