ASP.NET Gridview 中使用checkbox删除的2种方法实例分享

  方法一:

  后台代码:

  

复制代码 代码如下:

  protected void btn_delete_Click(object sender, EventArgs e)

  {

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

  {

  int id = Convert.ToInt32(this.GridView1.DataKeys[i].Value);

  if ((this.GridView1.Rows[i].Cells[0].FindControl("CheckBox1") as CheckBox).Checked == true)

  {

  Delete(id);

  ClientScript.RegisterStartupScript(GetType(),"提示","<script>alert('删除成功!')</script>");

  }

  }

  this.GridView1.DataBind();

  }//删除

  private void Delete(int id)

  {

  using (SqlConnection conn = new SqlConnection(str))

  {

  conn.Open();

  SqlCommand comm = conn.CreateCommand();

  comm.CommandText = "delete from Notice_Msg where id=@id";

  comm.Parameters.Add(new SqlParameter("@id", id));

  comm.ExecuteNonQuery();

  }

  }

  前台代码:

  

复制代码 代码如下:

  <asp:GridView ID="GridView1" runat="server" DataKeyNames="id">

  另外还得添加一列,让其绑定的字段为id,并且把这一列的visable属性设为false

  方法二:

  后台:

  

复制代码 代码如下:

  protected void btn_delete_Click(object sender, EventArgs e)

  {

  foreach (GridViewRow row in this.GridView1.Rows)

  {

  if (row.RowType == DataControlRowType.DataRow)

  {

  CheckBox ckb = row.Cells[2].FindControl("CheckBox1") as CheckBox;

  if (ckb.Checked)

  {

  using (SqlConnection sqlCnn = new SqlConnection(str))

  {

  using (SqlCommand sqlCmm = sqlCnn.CreateCommand())

  {

  sqlCmm.CommandText = "delete from Regime_Table where id='" + row.Cells[0].Text + "' ";

  sqlCnn.Open();

  int a= sqlCmm.ExecuteNonQuery();

  if (a>0)

  {

  ClientScript.RegisterStartupScript(GetType(),"提示","<script>alert('删除成功!')</script>");

  }

  else

  {

  ClientScript.RegisterStartupScript(GetType(), "提示", "<script>alert('删除失败!')</script>");

  }

  this.DataBind();

  }

  }

  }

  }

  }

  }

  前台:

  

复制代码 代码如下:

  <style type="text/css">

  .Hidden

  {

  display:none;

  }

  </style>

  <asp:BoundField DataField="id" HeaderText="编号" >

  <HeaderStyle CssClass="Hidden" />

  <ItemStyle CssClass="Hidden" />

  </asp:BoundField>

  新增加一列,这一列绑定id字段,并且visable属性不能为false,否则取不出值来。

  checkbox全选功能:

  

复制代码 代码如下:

  <script type="text/jscript">

  function change(sender) {

  var table = document.getElementById("GridView1");

  for (var i = 1; i < table.rows.length; i++) {

  table.rows[i].cells[1].getElementsByTagName("input")[0].checked = sender.checked;

  }

  }

  </script>

  <HeaderTemplate>

  <input id="Checkbox2" type="checkbox" onclick="change(this)"/>

  全选

  </HeaderTemplate>