Как подписаться на события страницы в Visual Studio 2008 IDE - PullRequest
3 голосов
/ 12 февраля 2011

ВАЖНО Может ли какое-нибудь тело решить это? Как создать обработчики событий Init, Load, PreRender и т. Д. В VS 2008?Когда мы дважды щелкаем по странице, она создает событие Page_Load.Как создать другое событие страницы?Я использую c # в приложении ASP.NET.enter image description hereНа изображении нет вкладки «Событие».

Ответы [ 5 ]

3 голосов
/ 16 февраля 2011

Вот ваш ответВ обозревателе решений щелкните правой кнопкой мыши страницу и выберите «Просмотреть конструктор компонентов» в контекстном меню, теперь в окне свойств откроется вкладка событий.

3 голосов
/ 12 февраля 2011

Для подписки на события страницы есть следующие способы:

  • переопределить методы on_xxx класса Web.UI.Page.Для удобства просто начните вводить private override, когда вы введете ключевое слово override, Intellisense автоматически сообщит вам о доступных методах, которые вы можете переопределить, и вы можете выбрать его оттуда и нажать tab (. Прототип для метода будет автоматически создан дляyou ).

  • Если для страницы установлен атрибут AutoEventWireup , установленный в значение true, то вы можете просто определить метод с прототипом и именем как Page_[your event], какPage_Init с соответствующими параметрами.И события будут автоматически подключаться .

    . Каркас страницы ASP.NET поддерживает механизм, который использует атрибут AutoEventWireup страницы веб-форм для автоматической привязки событий страницы иметоды обработчика событий.Если для атрибута AutoEventWireup директивы @ Page установлено значение ИСТИНА (или он не указан, поскольку его значением по умолчанию является ИСТИНА), каркас страницы ASP.NET автоматически вызывает методы-обработчики событий страницы.

    Например,методы обработчика событий Page_Init и Page_Load явно вызываются каркасом страниц ASP.NET без явного делегата события.

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

Ниже приводится сводка событий страницы в их порядке:

  • PreInit
  • Init
  • InitComplete
  • PreLoad
  • Load
  • Управляющие события
  • LoadComplete
  • PreRender
  • SaveStateComplete
  • Визуализация
  • Unload

Я обычно ссылаюсь на этот тип изображения из MSDN, чтобы проверить, какой метод переопределить:

enter image description here

1 голос
/ 12 февраля 2011

Я предпочитаю использовать вместо этого метод On, поэтому введите override OnLoad, чтобы настроить обработчик события загрузки, OnPreRender и т. Д. Каждый из этих методов по существу вызывает соответствующий обработчик события, например:

protected override void OnInit(EventArgs e)
{
   base.OnInit(e); //don't remove
}

Я также думаю, что вы можете добавить обработчик событий вручную:

protected void Page_Init(object sender, EventArgs e)
{

}

Не нужно ничего настраивать для этого (нет явного прослушивания события), но я не уверен на 100% в этом.

НТН.

1 голос
/ 12 февраля 2011

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

http://msdn.microsoft.com/en-us/library/ms178472.aspx

В дополнение к двойномуЕсли щелкнуть элементы управления страницы (кнопки, гиперссылки, элементы управления данными), появится раскрывающийся список при просмотре файла c #, который содержит другие события «жизненного цикла» страницы, а также другие созданные вами элементы управления.

enter image description here

0 голосов
/ 21 декабря 2011

Взгляните на это: http://msdn.microsoft.com/en-us/library/6w2tb12s%28v=VS.90%29.aspx (версия VS 2008)

Это говорит о том, что вы можете создать метод декларативно с именем Page_event.

Например, чтобысоздайте обработчик для события загрузки страницы, создайте метод с именем Page_Load.

Страницы ASP.NET автоматически связывают события страницы с методами с именем Page_event.Это автоматическое связывание настраивается атрибутом AutoEventWireup в директиве @ Page, которая по умолчанию имеет значение true.Если для AutoEventWireup задано значение false, страница не будет автоматически искать методы, использующие соглашение об именовании Page_event.

Сработало для меня!

...