批量删除GridView(DataGrid)选中项
前台:
<script type="text/javascript">
function delConfirm() {
return confirm("确定删除?");
}
function checkSelect() {
var ids = document.getElementsByName("delID");
if (ids.length > 0) {
for (var i = 0; i < ids.length; i++) {
if (ids[i].checked) return true;
}
}
alert("请选择最少一项!");
return false;
}
function checkAll(v) {
var ids = document.getElementsByName("delID");
if (ids.length > 0) {
for (var i = 0; i < ids.length; i++) {
ids[i].checked = v;
}
}
}
</script>
<asp:GridView ID="gv" runat="server" AutoGenerateColumns="false" CssClass="gridview"
AlternatingRowStyle-CssClass="dgAlter">
<RowStyle CssClass="dgItem" />
<Columns>
<asp:TemplateField>
<HeaderTemplate>
<asp:CheckBox runat="server" onclick="checkAll(this.checked)" Text="全选" />
</HeaderTemplate>
<ItemTemplate>
<input type="checkbox" name="delID" value="<%#Eval("id")%>" />
</ItemTemplate>
</asp:TemplateField>
......
</Columns>
</asp:GridView>
<div>
<asp:Button runat="server" Text="批量删除" OnClientClick="return checkSelect()?delConfirm():false"
OnClick="btn_BulkDel" /></div>
后台:
protected void btn_BulkDel(object sender, EventArgs e)
{
string ret = "";
string ids = Sxmobi.Tools.GetRequestVal("delID", "");
string p = @"^\d+(,\d+)*$";//格式: 1,32,44,2
Regex r = new Regex(p);
Match m = r.Match(ids);
if (!m.Success)//防sql注入检查
{
ret = "传入参数非法!";
}
else
{
try
{
IDatabaseDAO daoCraw = DAOFactory.CreateCrawlDAO();
string sql = string.Format("delete from filter where id in ({0})", ids);
daoCraw.ExecuteNonQuerySQL(sql);
ret = "删除成功!";
}
catch (Exception ex)
{
ret = "删除失败!失败原因:\r\n\r\n" + ex.Message;
}
}
MessageBox(ret);
}