Подключение события Page _PreInit вручную, с параметром AutoEventWireup, установленным на false

Если для атрибута AutoEventWireupустановлено значение false, события необходимо связывать вручную. Однако я не могу заставить Page_PreInitстрелять. Я предполагаю, что, возможно, я заставляю проводку происходить слишком поздно (, когда мы уже прошлиPage_PreInit), но я не уверен, куда еще деть провода.

Например...

protected override void OnInit(EventArgs e)
{
    base.OnInit(e)
    PreInit += new EventHandler(Page_PreInit);
    Load += new EventHandler(Page_Load);
}

protected void Page_PreInit(object sender, EventArgs e)
{
    Response.Write("Page_PreInit event fired!
"); //this is never reached } protected void Page_Load(object sender, EventArgs e) { Response.Write("Page_Load event fired!
"); }

Вышеупомянутый код приводит к "Событие загрузки страницы _запущено!" отображается, но ничего из Page_PreInit. Я пробовал base.OnInit(e)как до, так и после подключения, но это не дало никакого эффекта.

График, показанный здесь , говорит о том, что метод OnInitна самом деле следует за событием PreInit. Имея это в виду, я попытался переопределить OnPreInitи сделать то же самое ---безрезультатно.

В статье MSDN здесь прямо говорится, что в случае, если для AutoEventWireupустановлено значение false, события могут быть связаны в переопределении OnInit. Они используют пример Page_Load, и, конечно, он работает так же, как и для меня, но они не обращают внимания на то, что это не работает для события Page_PreInit.

Мой вопрос: :, как я могу подключить событие Page_PreInitв случае AutoEventWireup, установленного на false?

Я понимаю, что есть альтернативы, перечисленные на странице MSDN , например использование конструктора страницы. Я хотел бы конкретно знать, как поступить так, как они предлагают OnInit.

6
задан Adi Lester 7 August 2012 в 20:52
поделиться