2009-03-20 17 views
5

私は、マスターページのOnInitイベントをオーバーライドしたcontentpageを持っています。このオーバーライドはユーザーコントロールでは使用されていません(ユーザーコントロールでオーバーライドは使用されません)。asp.netでOnInitイベントを使用する

可能な原因/解決策は何ですか?この? (私はダイナミックコントロールを作成するのOnInitイベントを使用)


編集:今私は、コンテンツページでこれを試してみました

(OnPreInit部分の実行が、Masters_Initは取得していません...)

protected override void OnPreInit(EventArgs e) 
    { 
     base.Master.Init += new EventHandler(Masters_Init); 
    } 

    void Masters_Init(object sender, EventArgs e) 
    { 
    //code 
    } 

答えて

17

あなたはベースを呼び出していますか?

public override void OnInit(EventArgs e) 
{ 
    // code before base oninit 
    base.OnInit(e); 
    // code after base oninit 
} 

更新

あなたがする持っていない場合、私は、イベントをオーバーライドしていないお勧めしますが、あなたはベースを呼び出してください必要がある場合は、コメントで述べたようにまた
public class Page1 : Page 
{ 
    public Page1 : base() { 
    PreInit += Page_PreInit; 
    } 
    void Page_PreInit(object sender, EventArgs e) 
    { 
    Master.Init += Master_Init; 
    } 
    void Master_Init(object sender, EventArgs e) 
    { 
    //code 
    } 
} 

。それ以上のあなたの編集に

protected override void OnPreInit(EventArgs e) 
{ 
    base.OnPreInit(e); 
    base.Master.Init += new EventHandler(Masters_Init); 
} 
+0

確認する必要がありますが、イベントが発火されていません:とにかく – akosch

+0

はあなただけではなく、オーバーライドのOnInitのマスターページのInitイベントを購読することができます重要ではありませんか? – bendewey

+0

問題が解決しない場合は、コードを記入してください。 – bendewey

関連する問題