2012-05-09 14 views
0

私はいくつかのランタイム変数の値に基づいていくつかのボタンを作成しています。ボタンの実行時に作成されたワイヤアップボタン

私のコードは次のとおりです。ボタンがクリックされたときただし、クリックの方法は、最大発射されていない

Button cancel = new Button(); 
      cancel.Text = "Cancel"; 
      cancel.ID = "cancelEnrollmentForStudent" + zapsanePredmetyList.ElementAt(i).ID.ToString() + "-" + i ; 
      cancel.Click += new EventHandler(cancelEnrollment); 
      string toCancel = selectedSubject.SelectedValue + ";" + studentToEnroll.SelectedValue; 
      cancel.CommandArgument = toCancel; 

クリックメソッドのコードは

protected void cancelEnrollment(object sender, EventArgs e) 
    { 
     //do something when button clicked. 
     Button sourceButton = (Button)sender; 
     string[] data = sourceButton.CommandArgument.Split(';'); 
    } 

ている間。これは、実行時にボタンを作成するという事実と関係していると思います。誰かがこのメソッドを起動する方法についてアドバイスをCld?あなたはのOnInitはのOnInitメソッドにコードを追加上書きする必要が

おかげで、 オンドレイ

答えて

0

protected override void OnInit(EventArgs e) 
{ 
    base.OnInit(e); 
    Button btn = new Button(); 
    btn.ID = "btn1"; 
    btn.Text = "Button1"; 
    btn.Click += new EventHandler(btn_Click); 
    this.form1.Controls.Add(btn); 
} 

void btn_Click(object sender, EventArgs e) 
{  
    Button bt = (Button)sender; 
    bt.Text = "Changed";   
} 
+0

ありがとうございました。しかし、私は何か間違っているようです - ページにオーバーライドコードを追加すると、他のサーバー側フォーム要素のコンパイルの問題が発生し、コードがコンパイルに失敗します。 – Ondrej

+0

何のエラーがありますか? – Adil

+0

コンパイラエラーメッセージ:CS1061: 'ASP.subjects_choosesubject_aspx'に 'studentToEnroll_DataBound'の定義がなく、 'ASP.subjects_choosesubject_aspx'型の最初の引数を受け入れる拡張メソッド 'studentToEnroll_DataBound'が見つかりませんでした(usingディレクティブまたはアセンブリ参照?) 私はあなたのコードをコピーして貼り付けましたが、btn_clickではなくoninitを呼び出すように変更しましたが、私の独自の方法は唯一の違いはbtn.Click + = new EventHandler(cancelEnrollment)です。 – Ondrej

関連する問題