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);
}
}