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!<br>"); //this is never reached
}
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("Page_Load event fired!<br>");
}
上記のコードは、「Page_Loadイベントが発生しました!」という結果になります。表示されていますが、からは何もありませんPage_PreInit
。base.OnInit(e)
ワイヤーアップの前と後の両方を試しましたが、効果はありませんでした。
ここに示されているグラフは、OnInit
メソッドが実際にはPreInit
イベントの後に来ることを示しています。それを念頭に置いて、私OnPreInit
は同じことをオーバーライドして実行しようとしました---効果はありません。
ここでのMSDNの記事では、にAutoEventWireup
設定されている場合false
、イベントはオーバーライドされた状態で接続できると明示的に示されていますOnInit
。彼らが使用している例はです。もちろん、それは私と同じように機能しますが、これがイベントPage_Load
では機能しないように思われることについては言及していません。Page_PreInit
私の質問は、に設定さPage_PreInit
れている場合、どうすればイベントを接続できますか?AutoEventWireup
false
ページのコンストラクターを使用するなど、 MSDNページにリストされている代替手段があることを理解しています。彼らが提案するように具体的にどのように行うかを知りたいOnInit
です。