Как подписаться на события страницы на странице веб-приложения - PullRequest
1 голос
/ 20 августа 2009

Я мигрирую из ASP.NET 1.1, и я использовал для подписки на события страницы, используя конструктор, который добавляет подписки к методу InitializeComponent на странице.

Как в ASP.NET 2.0 можно подписаться на события Page от дизайнера?

Кажется, не работает конструктор.

protected void Page_Init(object sender, EventArgs e) {
  // The code, no safety here, just convention
}

// OR

protected override void OnInit(EventArgs e) {
    base.OnInit(e);
    // The code
}

Каков рекомендуемый способ подписки на события страницы? Тот же вопрос относится к MasterPage.

Кроме того, каков наилучший способ подписаться на события в UserControl? Когда я объявляю Page_XXX в UserControl, событие вызывается много раз.

1 Ответ

3 голосов
/ 20 августа 2009

Страницы поддерживают автоматическое связывание событий, что означает, что ASP.NET ищет методы с конкретными именами и автоматически запускает эти методы при возникновении определенных событий. Если для атрибута AutoEventWireUp директивы Page установлено значение true (по умолчанию установлено значение true - asp.net 2.0), события страницы автоматически привязываются к методам, которые используют соглашение об именах Page_Event, например Page_Load, Page_PreInit, Page_Init и т. Д. *

void Page_PreInit(){

}
void Page_Init(){

}

EDIT:

@ Дмитрий: Значит, имеет значение только название метода?

Да

@ Дмитрий: А как подписаться на события от дизайнера?

Вы не можете подписаться на события страницы через дизайнера.

См. Этот пример: Как добавить обработчик событий для событий страницы, если AutoEventWireUp имеет значение false?

 public _Default() //Constructor
     {
        this.Load += new EventHandler(_Default_Load);
    }

    void _Default_Load(object sender, EventArgs e)
    {

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...