------前台------
<div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="CategoryID">
<Columns>
<asp:TemplateField HeaderText="删除">
<ItemTemplate>
<asp:CheckBox ID="chkDel" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="CategoryName" HeaderText="目录名称" />
<asp:BoundField DataField="Description" HeaderText="描述信息" />
</Columns>
</asp:GridView>
<br />
<asp:Button ID="btnDel" runat="server" OnClick="Button1_Click" Text="删除" />
<asp:Button ID="btnSltAll" runat="server" OnClick="Button2_Click" Text="全选" />
</div>
------后台全选------
protected void btnSltAll_Click(object sender, EventArgs e)
{
CheckBox cb;
if (btnSltAll.Text == "全选")
{
for (int i = 0; i < GridView1.Rows.Count; i++)
{
cb = (CheckBox)GridView1.Rows[i].Cells[0].FindControl("chkDel");
cb.Checked = true;
}
btnSltAll.Text = "取消";
}
else
{
for (int i = 0; i < GridView1.Rows.Count; i++)
{
cb = (CheckBox)GridView1.Rows[i].Cells[0].FindControl("chkDel");
cb.Checked = false;
}
btnSltAll.Text = "全选";
}
}
-----后台删除------
protected void btnDel_Click(object sender, EventArgs e)
{
int count=0;
StringBuilder sql = new StringBuilder( "delete from Categories where CategoryID in(");
for (int i = 0; i < GridView1.Rows.Count; i++)
{
CheckBox cb = (CheckBox)GridView1.Rows[i].Cells[0].FindControl("chkDel");
if (cb.Checked)
{
sql.Append(GridView1.DataKeys[i].Value.ToString()).Append(",");
//如果CategoryID是字符串类型则需把上面的语句改成
//sql.Append("'"+GridView1.DataKeys[i].Value.ToString()).Append("',");
count++;
}
}
//如果有数据则去掉最后的逗号
if(count > 0)
sql.Remove(sql.Length-1,1);
//如果CategoryID是字符串类型则需加上else语句
//else
sql.Append("''");
//加上右括号
sql.Append(")");
//然后执行sql语句
//.......................................
}
在GridView实现批量删除记录、CheckBox全选
最新推荐文章于 2018-11-12 11:30:00 发布