ASP.NET(c#)
这是一个选择题答题页面,在DataGrid里面的一个模板列根据每一行记录的题号动态插入RadioButtonList以及选项。例如这是DataGrid里的两行记录
题号 题干   选项
1    1+1=? ◎A.1
            ◎B.2
            ◎C.3
----------------------
2    2+2=? ◎A.4
            ◎B.5这个我已经实现了,然后页面上定义一个“提交”按钮,按下后要遍历DataGrid的每一个记录的RadioButtonList,将选中项记录然后插入数据库。这里就出问题了。代码贴出来:
ItemDataBound里面动态生成RadioButtonList代码:
RadioButtonList rb = new RadioButtonList();
rb.ID="rbid"; if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)  
{  
e.Item.Cells[2].Controls.Add(rb);

添加选项:
rb.Items.Add(dr["Heading"].ToString()+"."+dr["OptionText"].ToString());//Heading是选项标号ABCD,OptionText是选项内容
"提交"按钮里面的代码:
private void bt_submit_Click(object sender, System.EventArgs e)
{
   for ( int i=0; i<this.DataGrid1.Items.Count; i++ )
   {
int btqid=Convert.ToInt32(((Label)(this.DataGrid1.Items[i].FindControl("QuestionIDItem"))).Text);//获取题号 RadioButtonList rblist = new RadioButtonList();
rblist = (RadioButtonList)this.DataGrid1.Items[i].Cells[2].FindControl("rbid");//这里出问题,错误是“未将对象引用设置到对象的实例。”
string answer=rblist.SelectedValue.Substring(0,1);
   }
}
(RadioButtonList)this.DataGrid1.Items[i].Cells[2].FindControl("rbid");这句我调试监视结果是:
函数this.DataGrid1.Items[i].Cells[2].FindControl”已求值并返回空
为什么找不到rbid?datagrid中动态插入RadioButtonList后该如何取得RadioButtonList选中项的值?