btnBack_Click
コードを確認して再確認した後、イベントを削除して別のイベントを登録した後もイベントが発生し続ける理由がわかりませんPage_Load
btnBack.Click -= new EventHandler(btnBack_Click);
btnBack.Click += new EventHandler(btnPreviewBack_Click);
ポストバックですか?OnClick
aspxのを削除していないからですか?
btnBack_Click
コードを確認して再確認した後、イベントを削除して別のイベントを登録した後もイベントが発生し続ける理由がわかりませんPage_Load
btnBack.Click -= new EventHandler(btnBack_Click);
btnBack.Click += new EventHandler(btnPreviewBack_Click);
ポストバックですか?OnClick
aspxのを削除していないからですか?
ページ ライフサイクルのどこでイベントを変更しているのかを正確に確認することはできませんが、ライフサイクルが開始されると、(イベント ハンドラーの変更に関する限り)すべてClick
が「元に戻される」ことを覚えておいてください(ただし、ポストバックの原因となったイベントは引き続き実行されます)。 )。
ポストバックが発生すると (非同期かどうかに関係なく)、すべてのイベント ハンドラーが元の構成に復元されます。
最善の方法は、イベント ハンドラーの変更をイベントに追加することPage_PreRender
です。
protected void Page_PreRender(Object sender, EventArgs e)
{
if (_MustChangeEventHandler)
{
btnBack.Click -= new EventHandler(btnBack_Click);
btnBack.Click += new EventHandler(btnPreviewBack_Click);
}
}