2

asp.netRadioButtonを動的に作成し、Web ページに挿入しています。

RadioButton rb = new RadioButton();
rb.ID  = "rb" + ReportPKey;
rb.Text = "ReportName";
phUiControls.Controls.Add(rb);

私は次の方法を持っています:

protected void rb_CheckedChanged( object sender, EventArgs e )
{
    // stuff
}

がクリックされrb_CheckedChangedたときに起動されるようにするにはどうすればよいですか?rb

4

3 に答える 3

1

匿名デリゲートを使用してそれを行う 1 つの方法 (これらのタイプのシナリオではクリーン):

var rb = new RadioButton{ ID = "rb" + ReportPKey, Text = "ReportName" };
phUiControls.Controls.Add( rb );

rb.CheckedChanged += (sender, e) => {
    // event handler code
};

または(他の何人かが指摘しているように):

rb.CheckedChanged += rb_CheckedChanged

ページのライフサイクルのコンテキストでは:

protected override OnInit( EventArgs e ){
    BuildDynamicControls();
    base.OnInit( e );
}

private void BuildDynamicControls(){
    var rb = new RadioButton{ ID = "rb" + ReportPKey, Text = "ReportName" };
    phUiControls.Controls.Add( rb );

    rb.CheckedChanged += (sender, e) => {
        // event handler code
    };
}
于 2012-05-18T17:56:10.417 に答える
1
rb.CheckedChanged += rb_CheckedChanged
于 2012-05-18T17:56:38.703 に答える
0
RadioButton rb = new RadioButton();
rb.ID  = "rb"+ReportPKey;
rb.Text = ReportName  ;
rb.CheckedChanged += rb_CheckedChanged
phUiControls.Controls.Add(rb);
于 2012-05-18T17:56:30.433 に答える