datagrid中有一个checkbox但是选中后没有反应,程序写的有什么问题??  
下面是程序 帮忙看看
 protected void Page_Load(object sender, EventArgs e)
    {
        {
            GV();  //向gridview中插入一个静态表
            GridView1.DataBind();
        }    }  protected void Del_Btn_Click(object sender, EventArgs e)
    {
        System.Web.UI.WebControls.CheckBox chk;
        int i = 0;        
        foreach (GridViewRow gvr in GridView1.Rows)
        {
            chk = (gvr.FindControl("CBox") as CheckBox);            if (chk.Checked)
            {
               delete();
            }
            
            DAT.Dispose();            
        }
    }<asp:GridView ID="GridView1" runat="server" DataKeyNames ="id" AllowPaging ="True" AutoGenerateColumns ="False" Font-Size="10pt"
         HorizontalAlign ="Center" OnPageIndexChanging ="changepage" Height="129px" Width="431px" ShowHeader="False">
                   <Columns >
                   
          <asp:TemplateField>                
                <ItemTemplate>
                <asp:CheckBox ID="CBox" runat="server">
                </asp:CheckBox>
                </ItemTemplate>                                
                <ItemStyle Width="28px" />
         </asp:TemplateField> 
                         
         <asp:BoundField DataField ="HTML" HtmlEncode ="False"/>
         </Columns>
     </asp:GridView>  

解决方案 »

  1.   

    delete(); 
    那你这个又是怎么实现??
      

  2.   

     for (int i = 0; i < this.GridView1.Rows.Count; i++)
            {
                if (((CheckBox)this.GridView1.Rows[i].Cells[0].FindControl("CheckBox1")).Checked == true)
    //这里CheckBox1绑定在第一列
                {
                   delete(); 
                }
            }
      

  3.   

    和那个没什么关系,现在到chk = (gvr.FindControl("CBox") as CheckBox); 这句的时候就一直是false。我选中了这个按钮也是 false
      

  4.   


    参考下。对照着改下。
    for(int n=0;n<DataGrid1.Items.Count;n++)
    {
    CheckBox cb=(CheckBox)DataGrid1.Items[n].Cells[0].FindControl("CheckBox2");
    if(cb.Checked)
    {
    int id=int.Parse(DataGrid1.DataKeys[DataGrid1.Items[n].ItemIndex].ToString());
    comp1.uid=id;

    if(comp1.SelectOne1()!=null)
    {
    login1.pName=comp1.SelectOne1().Tables[0].Rows[0]["comid"].ToString();
    login1.DeleteOne();
    }
    comp1.DeleteOne();
    }
    }
      

  5.   

    贴多了。只贴你需要的
    for(int n=0;n <DataGrid1.Items.Count;n++) 

    CheckBox cb=(CheckBox)DataGrid1.Items[n].Cells[0].FindControl("CheckBox2"); 
    if(cb.Checked) 

           //删除操作;

    }
      

  6.   

    我怀疑是不是 html页面有错误 请帮忙看看
      

  7.   

    应该是事件加载错误吧!
    应该在RowDataBound给CheckBox 加载事件,如下事例
     protected void gvStudents_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.Header)
            {
                CheckBox chkHeader = e.Row.FindControl("chkTermHeader") as CheckBox;
                if (chkHeader != null)
                    chkHeader.Attributes["onclick"] = "javascript:SelectAll(this,'" + gvStudents.ClientID + "','chkTermId')";
            }
            else if (e.Row.RowType == DataControlRowType.DataRow)
            {
                CheckBox chkItem = e.Row.FindControl("chkTermId") as CheckBox;
                if (chkItem != null)
                {
                    chkItem.Attributes["onclick"] = "javascript:SelectTicketItem(this,'" + gvStudents.ClientID + "')";
                }        }
        }
    JS:
     function SelectAll(chkHeader,gvName,chkItemName){
    var frm = document.forms[0];
    //debugger

    for (i=0;i<frm.length;i++)
    {
    var obj=frm.elements[i];
    if (obj.tagName=='INPUT'){
      if (obj.type.toLowerCase()=='checkbox'){
        if ((obj.id.indexOf(chkItemName)!=-1) && (obj.id.indexOf(gvName)!=-1)){
          if (!obj.disabled)
          obj.checked=chkHeader.checked;
        }
      }
    }
    }
    }

    function SelectTicketItem(chkTicketItem,gvName){
    if (chkTicketItem.checked==true) return;
    var frm = document.forms[0];
    //debugger
    var chkHeader;
    for (i=0;i<frm.length;i++)
    {
    var obj=frm.elements[i];
    if (obj.tagName=='INPUT'){
      if (obj.type.toLowerCase()=='checkbox'){
        if ((obj.id.indexOf('chkTermHeader')!=-1) && (obj.id.indexOf(gvName)!=-1)){
        chkHeader=obj;
        break;
        }
      }
    }
    }
    if (chkHeader==undefined)
    return;
    chkHeader.checked=false;

    }
     
      

  8.   

    不对,是gridview不是datagrid 方法不对阿,看看什么问题,是不是 绑定checkbox的时候有问题
      

  9.   

    先确定一下是delete方法的问题
    还是引用checkBox的问题.
      

  10.   

    for(int i=0;i<this.dgjianlilist.Items.Count;i++)
         {
           CheckBox chk=(CheckBox)this.dgjianlilist.Items[i].Cells[0].FindControl("控件名称");
    if(chk.Checked)
      {
                 //删除方法
      }
      

  11.   

    可以肯定是 checkbox绑定的错误,因为在 if()处加断点根本没法进去,
      

  12.   

    请大家注意我用的是gridview 不是 datagrid 谢谢
      

  13.   

    建议楼主先看看生成画面的html代码。
      

  14.   

    生成之后又checkbox阿
    但是就是选中后无效
      

  15.   

    form load
    {
     if(ispostback!=true)
     {
       GV();
     }
    }
    这样就可以了你试试,否则你每次都会刷新页面 checkbox就自动清空了
      

  16.   

    youunknow163
    youunknow
    哎太明显了呀,简直是一个人。
      

  17.   

    if(!ispostback)

                GV();  //向gridview中插入一个静态表 
                GridView1.DataBind(); 
            } 
    这样试试。
      

  18.   

    chk = (CheckBox)gvr.FindControl("CBox"); 再试试吧。