1

デザイナで作成された既存のボタンに新しいイベントを割り当てるのに問題があります。

これが、実行前に作成された、modalpopupexteder5内にあるボタンです-

<asp:Button runat="server" ID="btnClose" Text="Close" OnClick="btnClose_Click" />

これがコードビハインドです-

    protected void btnAddAccount_Click(object sender, EventArgs e)
    {
        btnClose.Click -= new EventHandler(btnClose_Click);
        btnClose.Click += new EventHandler(btnCancel_Click);
        ModalPopupExtender5.Show();            
    }

    protected void btnCancel_Click(object sender, EventArgs e)
    {
        ModalPopupExtender11.Hide();
    }

    protected void btnClose_Click(object sender, EventArgs e)
    {
        ModalPopupExtender5.Hide();

    }

したがって、最初のボタンには、イベントbtnClose_Clickが接続されています。しかし、私はそれをbtnCancel_Clickに変更したいと思います

ただし、btnCancel_Clickは実行されません。元のbtnClose_Clickを実行します

これを引き起こした可能性のあるアイデアはありますか?

これはページのライフサイクルに関連していますか?

--編集--btnAddAccount_Click が実行されることをお知らせします。

基本的に、同じモーダルポップアップエクステンダーを作成するのではなく、既存のモーダルポップアップエクステンダーを使用しますが、ユーザーの選択に応じて、呼び出すイベントハンドラーを決定します。この場合、btnAccount_Clickはボタンに割り当てるbtnCancel_Clickを選択します。

4

2 に答える 2

1

ASP.NET は、サーバー側のボタンの Click イベントをどこにも割り当てていません。これらのボタンは単純な送信ボタンとしてレンダリングされ、内部コード ビハインドは送信された値をチェックし、それに基づいて「クリックされた」ボタンを見つけ、適切なハンドラーを呼び出します。

これは、現在のロジックが行き止まりになっていることを意味します。

イベントをいじる代わりにbtnClose_Click、ハンドラーとして使用し、そこで現在アクティブ/表示されているポップアップをチェックして非表示にします。

于 2013-02-04T14:33:54.223 に答える
0

正確に何を求めているのかはわかりませんが、イベントにを追加しHandlesて、ボタンでイベントを制御することができます。何かのようなもの:

protected void btnCancel_Click(object sender, EventArgs e) Handles btnCancel.Click, btnClose.Click
{
    //do stuff 
}
于 2013-02-04T14:19:43.160 に答える