0

私のasp.netページのコードビハインドでは、ボタンを動的に作成し、イベントハンドラーを追加しています。しかし、ボタン クリック イベント (コード ビハインドで追加) にブレークポイントを設定すると、ヒットしません。理由はありますか?

私のコードはここにあります

ASP.NET ページ

<form runat="Server" id="frm1">
   <div id="divPaymentOptions" runat="Server"> </div>
</form>  

コードビハインド (C#)

 protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
          LoadControl();
        }
    }
 private void LoadControl()
 {
     Button objTempBtn = new Button();
     objTempBtn.ID = "myDynamicBtn";
     objTempBtn.Text = "Clich me";
     objTempBtn.Click+=new EventHandler(objTempBtn_Click);
     this.divPaymentOptions.Controls.Add(objTempBtn);
 }

 private void objTempBtn_Click(object sender, EventArgs e)
 {
    string strMsg="want to do something here";
 }

divPaymentOptions にブレークポイントを設定しました。しかし、私がそれを実行したとき、それはヒットしませんでした。しかし、ボタンをクリックするとポストバックが発生します。それは PageLoad メソッドになります。ボタンクリックイベントに来ない理由がわかりません。

何か案は?

4

1 に答える 1

3

ボタンはポストバック中に存在しません。ページにコントロールを動的に追加する場合は、毎回それを行う必要があります。チェックを外すと!IsPostBack、うまくいくはずです。

于 2010-10-23T16:36:57.357 に答える