2012-05-06 26 views
2

イベントが発生していない理由を知りたい&イベントを発生させたチェックボックスコントロールの検索方法を教えてください。動的チェックボックスハンドルCheckedChangedイベントの追加ASP.NET

chkList1 = new CheckBox(); 
          chkList1.Text = row["subj_nme"].ToString(); 
          chkList1.ID = row["subjid"].ToString(); 
          chkList1.Checked = true; 
          chkList1.Font.Name = "Verdana"; 
          chkList1.Font.Size = 12; 
          chkList1.AutoPostBack = true; 
          chkList1.CheckedChanged += new EventHandler(CheckBox_CheckedChanged); 
          Panel1.Controls.Add(chkList1); 

protected void CheckBox_CheckedChanged(object sender, EventArgs e) 
      { 
       Label1.Text = "Called"; 
      } 
+1

動的にチェックボックスを作成しますか?以前と同じIDで最新のpage_loadのポストバックでも再作成しますか? –

+0

'オブジェクト送信者'は、クリックしたときにイベントをトリガしたチェックボックスです。それを 'CheckBox'にキャストするだけです。 – fero

+0

page_loadでチェックボックスを作成しています。 – Enigma34

答えて

2

イベントが発射されていない場合、それは、2つの理由のいずれかの可能性があります:

  1. コントロールが遅すぎるページライフサイクルの再作成されます。 OnInitの間にコントロールを作成してみてください。
  2. 検証によってポストバックが防止されています。この問題を回避するには、すべてのCheckBoxコントロールでCausesValidationをfalseに設定します。

sender引数を使用して、イベントをトリガーしたコントロールを見つけることができます。

protected void CheckBox_CheckChanged(object sender, EventArgs e) 
{ 
    //write the client id of the control that triggered the event 
    Response.Write(((CheckBox)sender).ClientID); 
} 
+0

私は両方をしなければならなかった – hogarth45

関連する問題