天天看点

GridView控件的批量删除操作

        1.批量删除

          在进行批量删除时,需要一列选择框,让用户进行选择删除的条目。因此,在GridView 控件的   <Columns></Columns>标签对中加入需要进行选择的选择框控件。

     <asp:TemplateField HeaderText="删除">

                            <ItemTemplate>

                                <asp:CheckBox ID="del" runat="server" />

                            </ItemTemplate>

                        </asp:TemplateField>

        2.删除前确认

         在这里使用Button1按钮进行删除任务,那在进行删除前需要用户进行最后确认,只需要在page_load事件中添加如下一行程序:

        Button1.Attributes.Add("onclick", "return confirm(确认要删除选中项吗?')");

       3.全选记录按钮的事件代码

          当用户单击Button2时,如果Text是全选,执行选中所有的行,并设定该按钮为取消,此时再次单击Button2,就取消所有选择。代码如下

      protected void Button2_Click(object sender, EventArgs e)

      {

          CheckBox cb;

          if (Button2.Text == "全选")

          {

              for (int i = 0; i < GridView1.Rows.Count; i++)

              {

                cb = (CheckBox)GridView1.Rows[i].Cells[0].FindControl("del");

                  cb.Checked = true;

              }

              Button2.Text = "取消";

          }

          else

          {

              for (int i = 0; i < GridView1.Rows.Count; i++)

              {

                cb = (CheckBox)GridView1.Rows[i].Cells[0].FindControl("del");

                  cb.Checked = false;

              }

              Button2.Text = "全选";

          }

      }

      其中del是CheckBox的ID值。

    4.删除记录的按钮代码

      protected void Button1_Click(object sender, EventArgs e)

      {

          string sql = "delete from Categories where";

          string cal = "";

          for (int i = 0; i < GridView1.Rows.Count; i++)

          {

              CheckBox cb = (CheckBox)GridView1.Rows[i].Cells[0].FindControl("del");

              if (cb.Checked==true)

              {

                  cal += " CategoryID=" + GridView1.DataKeys[i].Value.ToString() + " or";

              }

          }

        if (cal != "")

          {

              sql += cal.Substring(0, cal.Length - 3);

          }

          else

          {

            sql = "";

          }

           objConnection = new OleDbConnection(strConnect);

            cmd = new OleDbCommand(sql, objConnection);

            objConnection.Open();

            int ii= cmd.ExecuteNonQuery();

            objConnection.Close();

            if (ii > 0)

            {

                Response.Write("<script>alert('删除成功!');</script>");

                // 更新GridView控件

                gridViewBind(this.TreeView1.SelectedNode.Value);

            }

       }