ASP.NET Gridview 中使用checkbox删除的方法(两种)

方法一:

后台代码:

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" οnclick="change(this)"/>
全选
</HeaderTemplate>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ASP.NET使用GridView控件的Checkbox列可以让用户方便地选择多个行,以进行批量操作。以下是使用GridView控件的Checkbox列的一些总结: 1. 添加Checkbox列 在GridView控件的模板列添加Checkbox列,可以使用以下代码: ``` <asp:GridView ID="GridView1" runat="server"> <Columns> <asp:TemplateField> <ItemTemplate> <asp:CheckBox ID="CheckBox1" runat="server" /> </ItemTemplate> </asp:TemplateField> ... </Columns> ... </asp:GridView> ``` 2. 获取选行 在处理GridView控件的Checkbox列时,需要遍历GridView的所有行,检查每个Checkbox是否被选。可以使用以下代码来获取选的行: ``` foreach (GridViewRow row in GridView1.Rows) { CheckBox chk = (CheckBox)row.FindControl("CheckBox1"); if (chk.Checked) { // 选的行 } } ``` 3. 设置全选 为了方便用户选择所有行,可以在页面上添加一个“全选”复选框,并使用JavaScript代码来设置GridView所有Checkbox的选状态。可以使用以下代码来设置全选: ``` <script type="text/javascript"> function selectAll() { var chkAll = document.getElementById('<%= chkAll.ClientID %>'); var grid = document.getElementById('<%= GridView1.ClientID %>'); for (var i = 0; i < grid.rows.length; i++) { var chk = grid.rows[i].cells[0].getElementsByTagName("input")[0]; if (chk.type == "checkbox") { chk.checked = chkAll.checked; } } } </script> <asp:CheckBox ID="chkAll" runat="server" onclick="selectAll();" /> ``` 4. 处理PostBack 在处理PostBack时,需要检查GridView的所有行,并处理选的行。可以使用以下代码来处理PostBack: ``` protected void Button1_Click(object sender, EventArgs e) { foreach (GridViewRow row in GridView1.Rows) { CheckBox chk = (CheckBox)row.FindControl("CheckBox1"); if (chk.Checked) { // 选的行 } } } ``` 希望这些总结能够对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值