大家帮个忙!我想在GridView使用CheckBox使其能有选择性的删除怎么做!我先在做的只能使其删除所有!
protected void Button2_Click(object sender, EventArgs e)///删除全选,有选择性的删除功能没有
    {
        for (int i = 0; i < xianshi.Rows.Count; i++)
        {
            CheckBox CB = (CheckBox)xianshi.Rows[i].FindControl("CheckBox1");
            if (CB.Checked)
            {
                SqlConnection con = dm3.duixiang();
                con.Open();
                SqlCommand cmd = new SqlCommand("delete duixiang where ID=" + xianshi.DataKeys[i].Value + " ", con);
                cmd.ExecuteNonQuery();
            }
            else
            {
                Response.Write("<script>alert('没有全选!');</script>");
                break;
            }
        }
    }
    protected void CheckBox2_CheckedChanged(object sender, EventArgs e)
    {
        for (int i = 0; i < xianshi.Rows.Count; i++)
        {
            CheckBox CB = (CheckBox)xianshi.Rows[i].FindControl("CheckBox1");
            if (CheckBox2.Checked == true)
            {
                CB.Checked = true;
            }
            else
            {
                CB.Checked = false;
            }        }
    }

解决方案 »

  1.   

    其实只要稍微将你的全部删除改一下就可以了,做法跟你全部删除的一样的
    思路是:是遍历所有的CheckBox,然后将选中的删掉
    我就直接改了,也不知道能够通过编译,你自己44        for (int i = 0; i  < xianshi.Rows.Count; i++) 
            { 
                CheckBox CB = (CheckBox)xianshi.Rows[i].FindControl("CheckBox1"); 
                if (CB.Checked) 
                { 
                    SqlConnection con = dm3.duixiang(); 
                    con.Open(); 
                    SqlCommand cmd = new SqlCommand("delete duixiang where ID=" + xianshi.DataKeys[i].Value + " ", con); 
                    cmd.ExecuteNonQuery(); 
                } 
      

  2.   

    另外加一个模板 , 往模板里加一个checkbox 接下来用代码实现就行   
    也可以实现全选删除
      

  3.   

    手工选择以后再执行你的代码就可以了啊?!
    protected void Button2_Click(object sender, EventArgs e)///删除全选,有选择性的删除功能没有 
        { 
            for (int i = 0; i  < xianshi.Rows.Count; i++) 
            { 
                CheckBox CB = (CheckBox)xianshi.Rows[i].FindControl("CheckBox1"); 
                if (CB.Checked) 
                { 
                    SqlConnection con = dm3.duixiang(); 
                    con.Open(); 
                    SqlCommand cmd = new SqlCommand("delete duixiang where ID=" + xianshi.DataKeys[i].Value + " ", con); 
                    cmd.ExecuteNonQuery(); 
                }             
            } 
        } 
      

  4.   

    protected void Button2_Click(object sender, EventArgs e) 
        { 
            for (int i = 0; i  < xianshi.Rows.Count; i++) 
            { 
                CheckBox CB = (CheckBox)xianshi.Rows[i].FindControl("CheckBox1"); 
                if (CB.Checked) 
                { 
                    SqlConnection con = dm3.duixiang(); 
                    con.Open(); 
                    SqlCommand cmd = new SqlCommand("delete duixiang where ID=" + xianshi.DataKeys[i].Value + " ", con); 
                    cmd.ExecuteNonQuery(); 
                } 
            } 
        }这样就行了吧,查找并删除选定的行。不知道你是不是这个意思。
      

  5.   

    对,是这个意思,但是“xianshi.DataKeys[i].Value”是当前页所有的键值啊,这个选中行的值怎么获取,就是这个比较难!
      

  6.   

    况且这个  if (CB.Checked) 也是判断所有行的CheckBox是否被选中阿!愁死我了~
      

  7.   

    如果不是只想删一行的话,用个ChekBox吧,点删除的时候先遍历grid,将chekBox.IsCheked为true的找到并删除就是了。
      

  8.   

    int j =GridView1.EditIndex;
    CheckBox CB = (CheckBox)GridView1.Rows[j].FindControl("CheckBox1");  
    if (CB.Checked)  
                {  
                    SqlConnection con = new SqlConnection(connectionString);  
                    con.Open();  
                    SqlCommand cmd = new SqlCommand("delete duixiang where ID=" + xianshi.DataKeys[i].Value + " ", con);  
                    cmd.ExecuteNonQuery();  
                }  這個是選中當前行 刪除
      

  9.   

       对行进行循环判断CheckBox列单元格就可以了。
       Convert.ToBoolen(dataGridView1.Rows[0].Cells[0].Value) = false 表示没选中。反之 表示选中。
       选中的删除。