asp.net gridview多页时的批量删除

book_admin.aspx


代码如下:

<asp:GridView ID="grwBook" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None" AutoGenerateColumns="false" AllowPaging="true" DataKeyNames="ID" OnPageIndexChanging="grwBook_PageIndexChanging" PageSize="12">
    <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
    <RowStyle BackColor="#EFF3FB" />
    <EditRowStyle BackColor="#2461BF" />
    <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
    <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
    <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
    <AlternatingRowStyle BackColor="White" />
    <Columns>
    <asp:BoundField DataField="ID" HeaderText = "ID" />
    <asp:BoundField DataField="UserName" HeaderText="姓名">
    <ItemStyle Width="60px" />
    </asp:BoundField>
    <asp:BoundField DataField="Comments" HeaderText="评论">
    <ItemStyle width="500px"  />
    </asp:BoundField>
    <asp:BoundField DataField="Postdate" HeaderText="日期" />
    <asp:HyperLinkField DataNavigateUrlFields="newsid" DataNavigateUrlFormatString="../news_zi.asp?id={0}" HeaderText="文章"  DataTextField="newsid" target="_blank" />
    <asp:TemplateField HeaderText="操作" >
        <ItemTemplate>
        <asp:CheckBox runat="Server" ID="cbxId" />
        </ItemTemplate>
    </asp:TemplateField>
    </Columns>
    <PagerSettings Mode="NextPreviousFirstLast" FirstPageText="第一页" LastPageText="末页" NextPageText="下一页" PreviousPageText="上一页" />
</asp:GridView>

book_admin.aspx.cs


代码如下:

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;

public partial class admin_book_admin : System.Web.UI.Page
{

protected void Page_Load(object sender, EventArgs e)
    {
        //判断管理员是否已经登陆
        admin.checkadmin();

btnDel.Attributes.Add("onclick", "return confirm('确定删除吗?')");

if (!Page.IsPostBack)
        {
            datainit();
        }
    }

protected void grwBook_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        this.grwBook.PageIndex = e.NewPageIndex;
        Session["curretnPage"] = e.NewPageIndex;
        datainit();
    }

//数据绑定
    private void datainit()
    {
        DataSet ds = db.dataSet("select ID,UserName,Comments,Postdate,newsid from Feedback order by Postdate desc,newsid desc");
        if (ViewState["currentPage"] != null)
        {
            this.grwBook.PageIndex = Convert.ToInt32(Session["currentPage"]);
        }
        this.grwBook.DataSource = ds;
        this.grwBook.DataBind();

}

//执行删除操作
    protected void btnDel_Click(object sender, EventArgs e)
    {
        string sqlText = "(";
        for (int i = 0; i < grwBook.Rows.Count; i++)
        {
            //搜索第n行3列
            CheckBox cbx = (CheckBox)grwBook.Rows[i].FindControl("cbxId");
            if (cbx.Checked == true)
            {
               sqlText = sqlText + Convert.ToInt32(grwBook.DataKeys[i].Value) + ",";
            }
        }

//判断是否有选中
        if (sqlText != "(")
        {
            //去掉最后的逗号,并且加上右括号
            sqlText = sqlText.Substring(0, sqlText.Length - 1) + ")";
            sqlText = "delete from Feedback where ID in" + sqlText;
            try
            {
                //执行删除语句
                db.excuteSql(sqlText);
                //重新绑定数据
                common.salert("删除成功");
                datainit();
                //Response.Redirect("book_admin.aspx");
            }
            catch (Exception ex)
            {
                //若有错误发生,输出错误信息
                common.salert(ex.Message);
            }
            finally
            {

}
        }
        else
        {
            common.salert("您还没有选中有删除的项");
        }
    }

}

(0)

相关推荐

  • 在ASP.NET 2.0中操作数据之六十四:GridView批量添加数据

    导言: 在前面的第62章<GridView批量更新数据>里,我们用GridView控件里定制了一个批编辑界面,同样的我们也可以定制一个批添加界面.假设有这种情况,我们接受一批从Tokyo(东京)发过来的货物:6种不同的tea 和 coffee,如果用户在一个DetailsView控件里一次输入一个产品,他将会重复的输入很多相同的值,比如相同的种类(Beverages),相同的供应商(Tokyo Traders),相同的discontinued值(False),以及相同的order值(0).重复

  • ASP.NET批量下载文件的方法

    本文实例讲述了ASP.NET批量下载文件的方法.分享给大家供大家参考.具体方法如下: 一.实现步骤 在用户操作界面,由用户选择需要下载的文件,系统根据所选文件,在服务器上创建用于存储所选文件的临时文件夹,将所选文件拷贝至临时文件夹.然后调用 RAR程序,对临时文件夹进行压缩,然后输出到客户端.最后删除临时文件夹.   二.代码实现   1.ASP.NET批量下载 核心代码 复制代码 代码如下: //遍历服务器指定文件夹下的所有文件 string path = "uploads/Image/&qu

  • asp.net repeater实现批量删除第1/2页

    批量删除涉及到的内容: 1.删除的SQL语句的拼凑,例如delete from sosuo8 where id in(1,2,5) 2.按下批量删除之后需要在客户端验证是否有选中项,和提示删除操作不可恢复.如果在服务端实现,那将非常的不友好,速度慢也是个问题.效果如下: 当前1/2页 12下一页阅读全文

  • Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)

    复制代码 代码如下: using System; using System.IO; using System.Text; using System.Data; using System.Web.UI; using System.Web.UI.WebControls; namespace ec { /// <summary> /// 文件操作类 /// </summary> public class FileObj : IDisposable { private bool _alre

  • JQuery实现Repeater无刷新批量删除(附后台asp.net源码)

    前台页面 复制代码 代码如下: <head runat="server"> <title>无标题页</title> <script src="Js/jquery-1.5.1.min.js" type="text/javascript"></script> <script src="Js/Demo.js" type="text/javascript&qu

  • sql server中批量插入与更新两种解决方案分享(asp.net)

    若只是需要大批量插入数据使用bcp是最好的,若同时需要插入.删除.更新建议使用SqlDataAdapter我测试过有很高的效率,一般情况下这两种就满足需求了 bcp方式 复制代码 代码如下: /// <summary> /// 大批量插入数据(2000每批次) /// 已采用整体事物控制 /// </summary> /// <param name="connString">数据库链接字符串</param> /// <param n

  • Asp.Net使用Bulk实现批量插入数据

    本文实例讲述了Asp.Net使用Bulk实现批量插入数据的方法,分享给大家供大家参考之用.具体方法如下: 主要功能代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Diagnostics; using System.Data; using System.Data.SqlClient; using System.Configuration;

  • asp.net下gridview 批量删除的实现方法第1/3页

    要实现的效果很简单,看下图片: 功能:选中CheckBox,后从数据库中删除选中项.文章侧重将如何实现批量删除,对于如何链接数据库和绑定数据不做详细解释. 1 我们先要在GridView中添加一列为CheckBox.代码如下: 复制代码 代码如下: <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">  <Columns>     

  • asp.net repeater实现批量删除时注册多选框id到客户端

    复制代码 代码如下: public static void prerepater(Repeater repeater,System.Web.UI.Page page) { ClientScriptManager cs = page.ClientScript; for (int i = 0; i < repeater.Items.Count; i++) { CheckBox cbx = (CheckBox)repeater.Items[i].FindControl("cbxId")

  • 在ASP.NET 2.0中操作数据之六十三:GridView实现批量删除数据

    导言: 在前面的教程,我们用GridView创建了一个批编辑界面.在用户需要一次性编辑多条记录的情况下,批编辑界面很有用.同理,当用户需要同时删除多条记录时,该技术也很有用. 如果你使用过邮件系统的话,你应该对这种最常见的批删除界面很熟悉:界面里每一行都包含一个checkbox,此外,还有一个"Delete All Checked Items"按钮(如图1).本教程比较短,因为我们在前面的教程已经完成大体的框架,在前面的第50章<为GridView控件添加Checkbox>

  • 在ASP.NET 2.0中操作数据之三十七:DataList批量更新

    导言 在前面我们学习了如何创建item级的DataList.和可编辑的GridView一样,每个DataList里的item都包含一个Edit button,当点击时,item会变的可编辑.item级的编辑在偶尔需要更新时没什么问题,但是在有些情况下用户需要编辑大量的记录.如果一个用户需要编辑许多记录,他会被迫去不停的去点击Edit,作出修改,然后点击Update,这些大量的点击会妨碍他的工作效率.在这样的情况下,一个好的选择是提供一个完全可编辑的DataList,它的所有的item都处于编辑模

  • 在ASP.NET 2.0中操作数据之六十二:GridView批量更新数据

    导言: 在前面的教程,我们对数据访问层进行扩展以支持数据库事务.数据库事务确保一系列的操作要么都成功,要么都失败.本文我们将注意力转到创建一个批更新数据界面. 在本文,我们将创建一个GridView控件,里面的每一行记录都可以进行编辑(见图1),因此我们没有必要多添加一列来包含Edit, Update,和Cancel按钮,而是在页面包含2个"Update Products"按钮,被点击时,遍历所有的产品并对数据库进行更新.让我们开始吧. 图1:GridView控件里的每一行记录都可以编

  • asp.net实现批量删除实例

    本文实例讲述了asp.net实现批量删除功能的方法.对于asp.net的学习有一定的参考价值.分享给大家供大家参考之用.具体实现方法入戏: .aspx文件代码如下: <asp:GridView ID="GridView1" runat="server" Width="100%" EmptyDataText="暂时无数据" BorderColor="White" OnRowDeleting="

随机推荐