dataGrid中有一模板列,放置的是checkbox
现在要看哪些checkbox被选中,为什么下面的遍历中,当checkbox被选中时,也没显示?
private void Button1_Click(object sender, System.EventArgs e)
{
this.DataGrid1.Visible=false;
CheckBox cb;
for(int i = 0;i<this.DataGrid1.Items.Count;i++)
{

cb = (CheckBox)this.DataGrid1.Items[i].Cells[0].FindControl("CheckBox1");
if(cb.Checked)
{
Response.Write(cb.ClientID.ToString()+"<br>");
}
}
}
调试时显示空白.

解决方案 »

  1.   

    注意一下这一句:
    cb = (CheckBox)this.DataGrid1.Items[i].Cells[0].FindControl("CheckBox1");
    这句令到你的循环失去了意义,因为你找的控件的ID都是CheckBox1。
      

  2.   

    ……
    CheckBox cb;
    string msg;
    for(int i = 0;i<this.DataGrid1.Items.Count;i++)
    {cb = (CheckBox)this.DataGrid1.Items[i].Cells[0].FindControl("CheckBox1");
        if(cb.Checked)
        {
    msg +=cb.ClientID+"<br>";
       }
    }
    Response.Write(msg);
      

  3.   

    cb = (CheckBox)this.DataGrid1.Items[i].FindControl("CheckBox1");
      

  4.   

    CheckBox cb;这一句可能有问题..现面是实现代码以共参考(测试成功):int j=DataGrid1.Items.Count;
    for(int i=0;i<j;i++)
    {
    if(((System.Web.UI.WebControls.CheckBox)DataGrid1.Items[i].Cells[1].FindControl("chb")).Checked==true)
    {
    ................................................
                                         }
                                }
      

  5.   

    1,你的邦定Dg代码是否放在
    if(!IsPostBack)
    {
    //BindDataGrid
    }
    2.this.DataGrid1.Visible=true;