动态创建了一个Table.用来显示考试试卷。其中CheckBoxList用来显示试题(A,B,---)选项。我想获取CheckBoxList的ID,然后同过循环,读取保存在CheckBoxList中CheckBoxList.SelectedValue; CheckBoxList.SelectedItem.Text的值,并保存到数据库. 但是  CheckBoxList chk = (CheckBoxList)(this.Table1.Rows[i].Cells[1].TemplateControl.FindControl("checkbox"));读取不到CheckBoxList的ID??请问各位高手这种方法行不行,有什么更好的方法??拜托了  ASP页面是用<asp:Table ID="Table1" runat="server" Width="80%"   BorderWidth="0" CellPadding="0" CellSpacing="0"  BackColor="#ffffff"> </asp:Table>   CheckBoxList[] chkb = new CheckBoxList[oqs.Count];
   checkbox.ID = "chkb" + n.ToString();
   ListItem lsti = new ListItem();
   lsti.Text=pbls.Content;
   lsti.Value=pbls.UID.ToString();   checkbox.Items.Add(lsti);
   cell.Controls.Add(checkbox);
   row.Cells.Add(cell);
   Table1.Rows.Add(row);protected void Button1_Click(object sender, EventArgs e)
    {                  for (int i = 0; i < r; i++)
            {
                 CheckBoxList chk = (CheckBoxList)(this.Table1.Rows[i].Cell[1].TemplateControl.FindControl("checkbox"));   //这里就是读取不到数据???
               
             }
}                                

解决方案 »

  1.   

    用js遍历在client生成的id 值再取试下
      

  2.   

    1 将CheckBoxList放到UpdataPanel中2 遍历CheckBoxList,取值
      

  3.   

    CheckBoxList的数据是从页面获得,而不是从后台获得,请问这怎么重新绑定??
    CheckBoxList是动态添加在table中,怎么把CheckBoxList放到UpdataPanel中??
      

  4.   

    将CheckBoxList放到UpdatePanel中,遍历CheckBoxList还是取不到值,不知道这是什么原因???
      

  5.   

    动态生成的控件提交后就没了 自然取不到  你在postback再生成一次
      

  6.   

    动态生成的控件没法保存视图状态,用request试试:
    for (int i = 0; i < r; i++) 

         string  chk = Convert.ToString(Request.From["chkb"+i.Tostring()]) ;                
      

  7.   

    没看清楚,放在Table里面的控件产生的客户端name是系统自动产生的,上面checkbox产生的客户端Name可能有变,不过是有规律的,lz可以看页面的源代码就知道checkbox产生的具体name了.
      

  8.   

    谢谢各位的帮助!!!
    问题解决了  CheckBoxList chk = (CheckBoxList)(this.Table1.Rows[i].Cell[1].TemplateControl.FindControl("chkb"+i.Tostring()));  
     以后有望多多帮忙啊