private void Button2_Click(object sender, System.EventArgs e)
{
foreach(DataGridItem item in DataGrid1.Items)
{
if(((CheckBox)item.FindControl
("selectid")).Checked==true)    //此处报错
{
                                         .....
}
}
}

解决方案 »

  1.   

    为什么用html的checkbox?这样怎么找的到
      

  2.   

    如果用HTML的 只能用JS脚本先遍利一次 得到所有控件的值!然后用location 属性 用?号的方式在传递过来!在后台程序里面REQUEST得到!
      

  3.   

    <ItemTemplate>
        <INPUT type="checkbox" id="selectid" runat="server" CHECKED>
    </ItemTemplate>因为我只想显示多选框,如果用Web的,后面会显示文字。
      

  4.   

    dcren118,请给出相关的代码好吗?
      

  5.   

    请参考一下:
    datagrid:
    <asp:TemplateColumn HeaderText="全选">
    <ItemTemplate>
    <asp:CheckBox id="check_id" runat="server"></asp:CheckBox>
    </ItemTemplate>
    </asp:TemplateColumn>
    .cs
    private void delall_Click(object sender, System.EventArgs e)
    {  
      
    ....数据库连接

    System.Web.UI.WebControls.CheckBox tempcheck;
    string sID;

    foreach(DataGridItem oDataGridItem in DataGrid1.Items)
    {
    tempcheck = (CheckBox)oDataGridItem.FindControl("check_id");
    if(tempcheck.Checked==true)
    {
    sID=oDataGridItem.Cells[1].Text.ToString();
    string sqlstr="delete from admin where id="+sID;
    OleDbDataAdapter comm=new OleDbDataAdapter(sqlstr,SqlConn);
    DataSet ds=new DataSet();
    comm.Fill(ds, "product_list1");
    DataGrid1.DataSource = ds;
    SqlConn.Close();
    }

    }
    BindData();


    }
      

  6.   

    private void Button2_Click(object sender, System.EventArgs e)
    {
    foreach(DataGridItem item in DataGrid1.Items)
    {
    if(((System.Web.UI.HtmlControls.HtmlInputCheckBox)item.FindControl
    ("selectid")).Checked==true)    //此处报错
    {
                                             .....
    }
    }
    } 就沒有問題,你要用HTML控件來取嘛!