我在DataGrid模板列中的拉入一个RadioButtonList控件,我想动态的填充它的Items。如果RadioButtonList不是在DataGrid模板列中,用
           this.RadioButtonList1.Items.Add( new ListItem("A", "A"));就可以了。现在的问题是我在.cs里找不到RadioButtonList控件,我试过用
         ((RadioButtonList)dgrdTeacherAssess.FindControl("radlSymbol")).Items.Add(new ListItem("A","A"));还有:((RadioButtonList)dgrdTeacherAssess.Controls[0].FindControl("radlSymbol")).Items.Add(new ListItem("A","A"));
都没有成功;报错都是:未将对象引用设置到对象的实例。谁有同样的经历的,并知道答案,告诉我,谢谢了。

解决方案 »

  1.   

    这样当然不行啦。你要指定到哪一行才行啊!因为每一个都有一个这样的控件,所以要区别这些控件的ID怎么办呢?datagrid在绑定的时候会自动给每一行的控件前面或后面加上一个唯一的字符串你可以在绑定的事件上写,也可以绑定完后遍历行循环添加
     在绑定事件可以这么写
    Control m_control = e.Item.FindControl("radlSymbol");
    if(m_control != null)
    {
      ((RadioButtonList)m_control).Add(new ListItem("a","a"));
    }
      

  2.   

    我可以在RadioButtonList控件的Items里直接写,这样模板列的每行都是OA OB OC OD OE这样让你选择。可是我这里的ABCDE是从数据库里提出来的。不能先写,必须写在代码里,然后做一个循环把它弄出来。如果RadioButtonList不是在DataGrid模板列中,用
               this.RadioButtonList1.Items.Add( new ListItem("A", "A"));就可以了。
      

  3.   

    我明白,但你现在的问题是它找不到RadioButtonList这个对象,你叫它怎么加??你断点一下,RadioButtonList这个对象肯定是null