请问在DataGrid中如何增加一个CheckBox ,如何实现批量删除?
谁有具体代码呢?
发给我一份参考一下
[email protected]

解决方案 »

  1.   

    告诉你思路:1、在DataGrid里面添加模板列,然后编辑“模板列”,在HeaderTemplate里面添加CheckBox,起名为cbHeader,在ItemTemplate里面添加CheckBox ,起名为cbItem。2、对HeaderTemplate的CheckBox的点击事件进行编程,当其被选中时,将DataGrid中各行的CheckBox也选中3、对删除按钮进行编程,检查DataGrid中各行,若行中的CheckBox被选中,则提取出id号来,并生成删除SQL语句。或者先收集id号,到最后一起生成删除语句。
      

  2.   

    baddot(小不点),能不能给段代码看看呢?
    俺很菜!
      

  3.   

    write in ItemCommand Function int intJls = 0;
    for(int i=0;i<grdTerm.Items.Count;i++)
    {
    CheckBox chk = (CheckBox)grdTerm.Items[i].FindControl("chk1");
    if (chk.Checked)
    {
    OleDbConnection connDel = new OleDbConnection(strCnn);
    connDel.Open();
    string sql_Del = "DELETE FROM ThisTerm " +
    " WHERE dm = '" + ((HyperLink)grdTerm.Items[i].Cells[5].Controls[0]).Text+"'"; OleDbCommand OleDbCommandDel = new OleDbCommand(sql_Del,connDel);
    OleDbCommandDel.ExecuteNonQuery();
    connDel.Close();
    intJls++;
    }

    }
    if (grdTerm.Items.Count==intJls && grdTerm.CurrentPageIndex>0)
    {
    grdTerm.CurrentPageIndex -= 1;
    }
    grdTerm.EditItemIndex = -1;
    grdTerm.DataSource = CreateDataSource("1");
    grdTerm.DataBind();
      

  4.   

    baddot(小不点),搞的差不多了,还差编程
    谢谢了
      

  5.   

    vb文件代码如下: 
    Imports System.Data 
    Imports System.Data.SqlClient 
    Imports System.Web.UI.WebControls Public Class _01 
    Inherits System.Web.UI.Page 
    Dim myConn As SqlConnection 
    Dim myComm As SqlDataAdapter 
    Dim ds As DataSet 
    Dim nameCmdBd As SqlCommandBuilder 
    Dim strSql As String #Region " Web 窗体设计器生成的代码 " '该调用是 Web 窗体设计器所必需的。 
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() End Sub 
    Protected WithEvents TABLE1 As System.Web.UI.HtmlControls.HtmlTable 
    Protected WithEvents dgrdName As System.Web.UI.WebControls.DataGrid 
    Protected WithEvents Button1 As System.Web.UI.WebControls.Button '注意: 以下占位符声明是 Web 窗体设计器所必需的。 
    '不要删除或移动它。 
    Private designerPlaceholderDeclaration As System.Object Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init 
    'CODEGEN: 此方法调用是 Web 窗体设计器所必需的 
    '不要使用代码编辑器修改它。 
    InitializeComponent() 
    End Sub #End Region Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    If Not IsPostBack Then 
    BindGrid() 
    End If 
    End Sub Sub BindGrid() 
    myConn = New SqlConnection("server=localhost;uid=sa;pwd=;database=mydata") 
    strSql = "select * from netuser" 
    myComm = New SqlDataAdapter(strSql, myConn) 
    ds = New DataSet 
    myComm.Fill(ds, "user") 
    dgrdName.DataSource = ds.Tables("user").DefaultView 
    dgrdName.DataBind() 
    End Sub Public Sub chkAll_changed(ByVal sender As System.Object, ByVal e As System.EventArgs) 
    Dim cb As CheckBox = sender 
    Dim i As DataGridItem 
    For Each i In dgrdName.Items 
    Dim cb1 As CheckBox 
    cb1 = i.FindControl("chkDel") 
    If cb.Checked Then 
    cb1.Checked = True 
    Else 
    cb1.Checked = False 
    End If 
    Next 
    End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    myConn = New SqlConnection("server=localhost;uid=sa;pwd=;database=mydata") 
    strSql = "select * from netuser" 
    myComm = New SqlDataAdapter(strSql, myConn) 
    ds = New DataSet 
    myComm.Fill(ds, "name") 
    Dim i As Integer 
    For i = 0 To dgrdName.Items.Count - 1 
    Dim cb As CheckBox = dgrdName.Items(i).FindControl("chkDel") 
    If cb.Checked Then 
    ds.Tables("name").Rows(i).Delete() 
    End If 
    Next 
    nameCmdBd = New SqlCommandBuilder(myComm) 
    myComm.Update(ds, "name") 
    dgrdName.DataSource = ds.Tables("name").DefaultView 
    dgrdName.DataBind() 
    End Sub 
    End Class
      

  6.   

    http://community.csdn.net/Expert/topic/3427/3427702.xml?temp=.9241602
      

  7.   

    请问按照 50277(柳影随风) 的代码
    http://community.csdn.net/Expert/topic/3427/3427702.xml?temp=.9241602我想加个批量删除确认,怎么实现?
      

  8.   

    在删除按钮的事件里加
    intI=dgDeleteBook.Items.Count ;
    int intTemp=0;
    int intCount=0;
    this.strBookID=new string[intI];for(int i=0;i<intI;i++)
    {
    if(((CheckBox)dgDeleteBook.Items[i].Cells[0].FindControl("chkData")).Checked==true)
    {
    //提取图书编号
    this.strBookID[intTemp]=((CheckBox)dgDeleteBook.Items[i].Cells[0].FindControl("chkData")).Text;
    intTemp=intTemp+1;
    }
    else
    {
    //暂不做处理
    //.........
    }
    }
    //用一个循环执行 SQL 语句
    string strSql;
    OpenDataBase();
    for(int i=0;i<intTemp;i++)
    {
      strSql=" DELETE FROM TABLENAME WHERE ID= strBookID[i]"
      //执行删除
      SqlCommand cmd=new SqlCommand("",conn);
      cmd.CommandText=strSql;
      cmd.ExecuteNonQuery();
    }
    CloseDataBase();//关闭连接
      

  9.   

    for(intCount=0;intCount<intTemp;intCount++)
    {
    Session["ReaderID"+intCount]=this.strReaderID[intCount];
    }Session["CheckReaderCount"]=intTemp;string strTemp="./TempReader.aspx";
    objSystem.MessageBoxYesNo("确定要彻底删除所选择的读者信息?",Page,strTemp);
    //////////////////////////////////////////////////////////////////////
    然后在TempReader.aspx页面的Load事件里写(不要写 if(!Page.IsPostBack))
    //删除信息
    for(int i=0;i<Convert.ToInt32(Session["CheckReaderCount"].ToString());i++)
    {
    //删除Reader_info表的记录
    string strTemp="delete Reader_info where ReaderCardID='"+Session["ReaderID"+i].ToString()+"'";
    //执行SQL语句
             //...........
    }
    //回到删除页面
    Response.Redirect("./ReaderQuery.aspx");//////////////////////////////////////////////////////////////////////
    public void MessageBoxYesNo(string strText,Page objPage,string strURL)
    {

    objPage.Response.Write("<script language='javascript'>var ans;");
    objPage.Response.Write("ans=window.confirm('"+strText+"');");
    objPage.Response.Write("if (ans==true){window.location='"+strURL+"';}</script>");
    objPage.Response.Write("</script>");
    }
      

  10.   

    Button2.Attributes.Add("OnClick", "Javascript:return confirm('确实要删除这条记录吗?');");
      

  11.   

    http://dotnet.aspx.cc/ShowDetail.aspx?id=F43AF9A5-2C2E-4AA6-E976-21E9569F5A8Ahttp://dotnet.aspx.cc/Exam/SelectMultiPages.aspxhttp://dotnet.aspx.cc/ShowDetail.aspx?id=FF130C7F-3650-4DA6-8943-8AA4AF3E3459
      

  12.   

    全选/反选操作用js
    <script language="javascript">
    function CheckAll()
    {
    var allchecked = true;
    for(var i=0;i<Form1.check.length;i++)
    {
    if(!Form1.check[i].checked)
    allchecked = false;
    }
    for(var i=0;i<Form1.check.length;i++)
    {
    if(allchecked)
    Form1.check[i].checked = false;
    else
    Form1.check[i].checked = true;
    }

    } function disCheck()
    {
    for(var i=0;i<Form1.check.length;i++)
    {

    Form1.check[i].checked = !(Form1.check[i].checked );


    }
    } </script>
      

  13.   

    全选按纽
    <input class="noBorder" onclick="CheckAll()" type="button" value="全选" name="Button">
    <input class="noBorder" onclick="disCheck()" type="button" value="反选" name="Button">
    <input class="noBorder" type="reset" value="重置" name="B1">
    <input id="Submit1"type="submit" value="删 除" name="submit" runat="server">
      

  14.   

    删除响应事件
    private void Submit1_ServerClick(object sender, System.EventArgs e)
    {
    string goodsID=Request["check"];
    string[] goodsString;
    goodsString = goodsID.Split(',');
    for(int i=0;i<goodsString.Length;i++)
    {
    ........
    }
    }
      

  15.   

    删除确认:
    page_load
    Button2.Attributes.Add("OnClick", "Javascript:return confirm('确实要删除这条记录吗?');");
    删除响应事件
    private void Button2_OnClick(object sender, System.EventArgs e)
    {
    CheckBox cb;
    OleDbCommand oCommand2 = new OleDbCommand("delete tablename where id=@id", oConnection);
    oCommand2.Parameters.Add("@id", SqlDbType.Varchar);
    oConnection.Open();
    oCommand2.Prepare();
    foreach (DataGridItem item in DataGrid1)
    {
    cb = item.FindControl("controlid") as cb;
    if(cb != null && cb.Checked)
    {
    oCommand2.Parameters["@id"].Value = DataGrid.DataKey[item.Index].ToString();
    oCommand2.ExecuteNonQuery();
    }
    }
    oConnection.Close();
    }
      

  16.   

    sorry, 此行纠正:
    cb = item.FindControl("controlid") as CheckBox;
      

  17.   

    用 JS收集ID存到selId
    aspx<script language="javascript">
    <!--function select_all()
    {
    for (var i=0;i<frmMain.elements.length ;i++)
    if(frmMain.elements[i].name=="selItem")
    frmMain.elements[i].checked=true
    }function getDelId(){
    var length=document.all.selItem.length;
    if(document.all.selItem.checked){
    document.all.selId.value+="'"+document.all.selItem.value+"',";
    }
    else{
    for(i=0;i<length;i++){
    if(document.all.selItem[i].checked){
    document.all.selId.value+="'"+document.all.selItem[i].value+"',";
    }
    }
    }
    if(!window.confirm("确实要删除这些信息吗?"))
    document.all.selId.value="";

    //-->
    </script><asp:TemplateColumn HeaderText="操作">
    <HeaderStyle HorizontalAlign="Center" Width="50px"></HeaderStyle>
    <ItemTemplate>
    <input type="checkbox" name="selItem" value='<%# DataBinder.Eval(Container.DataItem,"ID") %>'>
    </ItemTemplate>
    </asp:TemplateColumn><input type="button" height="5" value="全选" name="selectall" onClick="return select_all()">
    <input type="reset" name="Reset" value="取消选择">
    <asp:button id="btnDel" runat="server" Text="删除选中"></asp:button>
    <INPUT id="selId" type="hidden" runat="server" NAME="selId">cs处理部分
    private void Page_Load(object sender, System.EventArgs e)
    {
    if (!Page.IsPostBack)
    {
    btnDel.Attributes["onclick"] = "getDelId()";
    RefreshGrid();
    }
    }private void dataGrid_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
    {
    dataGrid.CurrentPageIndex=e.NewPageIndex;
    RefreshGrid();
    }private void RefreshGrid()  
    {
    string sqlStr = "select * from [Article]  order by ID desc";
    doData.bindDtatGrid(sqlStr,dataGrid);
    }
    private void btnDel_Click(object sender, System.EventArgs e)
    {
    string strWhere="'',"+selId.Value;
    strWhere=strWhere.Substring(0,strWhere.Length-1);
    string delStr = "delete from [Article] where ID in ("+strWhere+")";
    doData.opData(delStr);
    RefreshGrid();
    }
      

  18.   

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            Dim conn As New OleDbConnection("Data Source=""" & Me.Server.MapPath(System.Configuration.ConfigurationSettings.AppSettings("database")) & """;Provider=""Microsoft.Jet.OLEDB.4.0"";User ID=Admin")
            Dim i As Integer        Dim str As String
            conn.Open()
            For i = 0 To Me.DataGrid1.Items.Count - 1
                Dim chk As CheckBox = CType(Me.DataGrid1.Items.Item(i).FindControl("checkbox1"), CheckBox)
                str = chk.Checked
                'If chk.Checked Then
                Dim mycom As New OleDbCommand("UPDATE T_UserInfo SET  UserLock =" & str & " where UserId =" & Me.DataGrid1.Items.Item(i).Cells(0).Text & "", conn)
                If mycom.ExecuteNonQuery > 0 Then
                    Me.Label1.Text = "操作已经成功!"
                    'End If
                End If
            Next
            conn.Close()    End Sub    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
            Dim i As Integer
            Me.Label1.Text = ""
            Dim str As String        For i = 0 To Me.DataGrid1.Items.Count - 1
                Dim chk As CheckBox = CType(Me.DataGrid1.Items.Item(i).FindControl("checkbox1"), CheckBox)
                chk.Checked = True
            Next
        End Sub    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
            Dim i As Integer
            Me.Label1.Text = ""        Dim str As String        For i = 0 To Me.DataGrid1.Items.Count - 1
                Dim chk As CheckBox = CType(Me.DataGrid1.Items.Item(i).FindControl("checkbox1"), CheckBox)            chk.Checked = False = chk.Checked = True        Next
        End Sub
    看懂这段代码就可以了 Dim str As String        For i = 0 To Me.DataGrid1.Items.Count - 1
                Dim chk As CheckBox = CType(Me.DataGrid1.Items.Item(i).FindControl("checkbox1"), CheckBox)
                chk.Checked = True
            Next这段就可以了