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

前端技术 2023/09/06 .NET
方法一:
后台代码:
复制代码 代码如下:

 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>

本文地址:https://www.stayed.cn/item/14972

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。