首页 新闻 赞助 找找看

【求助】怎么才能在动态生成RadioButton时,加上监听函数OnCheckedChanged?

0
[已解决问题] 解决于 2010-03-16 07:05

需求:

1.页面上需要一组单选按钮,不同的单选按钮控制页面上显示不同的内容。

2.单选按钮需要从数据库里读数据,然后动态生成

3.已经写好了js函数 changeCriteria(ID),如果单选按钮改变触发该函数,控制页面内容的显示...

 

问题:用代码生成单选按钮添加不上OnCheckedChanged事件 (┬_┬)

 

C#中的实现代码

   //dtResult是我已经从数据库中读出来的生成单选按钮的数据,一共两列,一个id,一个是RadioButton显示的text

        int rowCount = dtResult.Rows.Count;  

        for (int i = 0; i < rowCount; i++)
        {
            RadioButton radio = new RadioButton();
            radio.ID = "rad" + dtResult.Rows[i]["id"].ToString();
            radio.Text = dtResult.Rows[i]["criteria"].ToString();
            radio.GroupName = "radCriteria";
            radio.Style.Value.Insert(0,"width:20px;border:0");
            radio.TextAlign.Equals("right"); // 这句对不对还不知道 - =
            radio.CheckedChanged="";
            //现在想给每个RadioButton添加上函数OnCheckedChanged=changeCriteria(dtResult.Rows[i]["id"],因为需要监听RadioButton的改变来改变页面内容,可是radio怎么也点不出OnCheckedChanged来,要疯了  ::>_<::
            
            RadioButtonPanel.Controls.Add(radio);

        }

 

请问,该怎么样才能在动态添加单选按钮时给每个RadioButton加上监听函数啊?

如果我这种方法不行或者不好,请问还有其他什么方法能够达到同样的效果么?

不好意思,初学.net不久,还是菜鸟一只~

希望大家不吝赐教! (*^__^*)

我爱阳光的主页 我爱阳光 | 菜鸟二级 | 园豆:204
提问于:2010-03-12 13:48
< >
分享
最佳答案
0

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


private void CreatedRadio()
{
RadioButton rad
= new RadioButton();
rad.Text
= "Test";

rad.AutoPostBack
= true;
rad.CheckedChanged
+= new EventHandler(rad_CheckedChanged);

phl.Controls.Add(rad);
}

void rad_CheckedChanged(object sender, EventArgs e)
{
RadioButton rad
= sender as RadioButton;
if (rad != null)
{
Response.Write(rad.Checked);
}
else
{
Response.Write(
"xx");
}
}

 

Leox | 菜鸟二级 |园豆:461 | 2010-03-12 14:38
非常感谢!
我爱阳光 | 园豆:204 (菜鸟二级) | 2010-03-16 07:05
其他回答(1)
0

可以在aspx页面上进行创建

<script type="text/javascript">
    for (var i = 0; i < 5; i++) {
        var inp = document.createElement("INPUT");
        inp.setAttribute("type", "radio");
        inp.setAttribute("name", "rs");
        inp.setAttribute("id", "");
        inp.onclick = function() { alert(inp.id); };
        document.body.appendChild(inp);
    }
</script>

然后这里可以使用变量值,变量值由你的dtResult来决定。

西越泽 | 园豆:10775 (专家六级) | 2010-03-12 14:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册