批量删除GridView(DataGrid)选中项

来源:互联网 发布:php curl culopt 编辑:程序博客网 时间:2024/05/16 13:44

前台:

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

原创粉丝点击