GridView批量删除页面最后N条数据时自动翻到上一页问题

时间:2021-09-07 19:40:21

删除选中数据
protected void lbtnDelSeleted_Click(object sender, EventArgs e)
    {
        CQ_Music myMusic=new CQ_Music();//这里是一个对音乐操作的类
        for (int i = 0; i < gvMusic.Rows.Count; i++)
        {
            if (((CheckBox)gvMusic.Rows[i].Cells[0].FindControl("chbItem")).Checked)
            {

                int id = Convert.ToInt32(((Label)gvMusic.Rows[i].Cells[0].FindControl("lbID")).Text);
                myMusic.delete(id);//这里调用类的操作方法
            }
        }
       
         //这里用了二次绑定,因为多选删除问题,无法用取余=1的旧方法,
         //两个条件判断,是不是第一页(索引为0),当前页数据为0条(在当前页数据被删除完后,更新后,显示为0条)
       int currentPageIndex = gvMusic.PageIndex;//获取当前页的索引,因为第一次绑定后,索引可能会减1
        gvMusic.DataBind();
        //如果最后一页的数据被删除后,
        if (currentPageIndex != 0 && gvMusic.Rows.Count == 0)
        {
            gvMusic.PageIndex = currentPageIndex - 1;
        }
        gvMusic.DataBind();
   
    }