在使用DataGrid分页的时候,正常情况下,绑定数据库列表纪录时会自动产生分页的效果,然而我发觉在删除纪录的时候总会发生"无效的 CurrentPageIndex 值。它必须大于等于 0 且小于 PageCount。"的异常,其实解决这个问题很简单,我们要做的就是在DataGrid1_DeleteCommand事件中判断CurrentPageIndex的值,并根据不同的结果来绑定DataGrid。

//检索数据库的函数
  public DataSet GetZcbd()
  {
   try
   {
    DataSet ds=new DataSet();   
    string searchString="select id,yy,bj from zc";
    da=new OleDbDataAdapter(searchString,conn);
    da.Fill(ds,"yy");    
    return ds;
   }
   catch
   {
    return null;    
   }  
           
  }

//绑定DataGrid   
private void BindGrid()
  {
   DataSet ds = new DataSet();
   ds = us.GetZcbd();
   if (ds!=null)
   {
    this.DataGrid1.DataSource = ds;
    this.DataGrid1.DataBind();
   }
   else
   {
    msg.Alert("加载数据错误!",Page);
   }
  }

//删除数据库纪录函数
  public string DeleteZcbd(int bdID)
  {

int count = this.IfExiseZysx(bdID);//不必理会次句,默认count=1
   if (count <= 0) return "false";
   else
   {
    string sqlStr = "delete from zcwhere id="+bdID;
    OleDbCommand cmd = new OleDbCommand(sqlStr,conn);

conn.Open();

try
    {
     cmd.ExecuteNonQuery();
     return "true";
    }
    catch(Exception e)
    {
     return e.Message.ToString();
    }
    finally
    {
     conn.Close();
    }      
   }
  }

// DataGrid1_DeleteCommand事件修改函数  
private void DataGrid1_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
  {
   int bdID = int.Parse(DataGrid1.DataKeys[(int)e.Item.ItemIndex].ToString());
   string isDel = us.DeleteZcbd(bdID);
   int CurrentPage = 0;
   if (isDel == "true")
   {
    if(this.DataGrid1.CurrentPageIndex == this.DataGrid1.PageCount -1)
    {
   if (this.DataGrid1.CurrentPageIndex == 0)
    {
     this.DataGrid1.CurrentPageIndex = this.DataGrid1.PageCount -1;
    }
    else
    {
     if (this.DataGrid1.Items.Count % this.DataGrid1.PageSize == 1)
     {
      CurrentPage = 2;
     }
     else
     {
      CurrentPage = 1;
     }
     this.DataGrid1.CurrentPageIndex = this.DataGrid1.PageCount - CurrentPage;
    }
   }
    this.BindGrid();
   }
   else
   {
       msg.Alert("删除数据错误!",Page);
   }
 
  }
    注释:msg为一个类似WinForm的messagebox对话框,不必理会。可以使用label.Text代替

在分页状态下删除纪录的问题相关推荐

  1. DataGrid在分页状态下删除纪录的问题

    在使用DataGrid分页的时候,正常情况下,绑定数据库列表纪录时会自动产生分页的效果,然而我发觉在删除纪录的时候总会发生"无效的 CurrentPageIndex 值.它必须大于等于 0 ...

  2. 计算机广播状态下操作,二,操作题:1

    二,操作题:1 (2008-11-19 13:29:23) 标签: 杂谈 二,操作题: 操作 1 题目: 打开WINDOWS 98的资源管理器,按顺序进行如下操作: 1.在 A 盘根目录下的NJDD目 ...

  3. linux 下删除文件的 操纵

    linux   下删除 文件的 方法::: 1-  remove remove(删除文件) 相关函数 link,rename,unlink 表头文件 #include<stdio.h> 定 ...

  4. 浅谈:MyBatis-Plus的CRUD与乐观锁,分页插件,逻辑删除

    浅谈:MyBatis-Plus的CRUD与乐观锁,分页插件,逻辑删除 MyBatis-Plus官方文档连接 什么是MyBatis-Plus 请点击上面官方文档查看 代码演示:代码注释为功能详细解释 数 ...

  5. c4503文件服务器,理光C3503/C4503/C5503检查状态下各项目说明解释

    理光C3503/C4503/C5503检查状态下各项目说明解释 使用复印机.文件服务器或打印机模式打印的作业会临时储存在理光复印机中,然后依次执行.您可以在理光复印机[检查状态]显示屏或[作业列表]显 ...

  6. mysql 有等待事件,排查性能详情中活动会话正在 SYNCH 等待事件状态下等待的问题...

    为什么我的 MySQL 数据库实例在性能详情中显示大量活动会话正在 SYNCH 等待事件状态下等待? 上次更新时间:2020 年 12 月 14 日 我有 RDS MySQL.RDS MariaDB ...

  7. 如何在Release状态下进行调试

    1.如何在Release状态下进行调试 Project->Setting=>ProjectSetting对话框,选择Release状态.C/C++标签中的Category选General, ...

  8. qt Android 按键事件,QT无窗口状态下对键盘事件的监听

    Question:最近在搞linux下的一个客户端项目,需要接收键盘事件,但是又不能有界面,这种情况怎么处理呢? int main(int argc, char *argv[]) { QApplica ...

  9. [4G5G专题-93]:流程 - 4G LTE 终端在RRC 连接状态下的小区切换通用过程

    目录 第1章 切换概述 1.1 移动性管理 1.2 什么是小区切换(hand over) 1.3 为什么要切换 1.4 小区切换的决策者 第2章 切换的分类 2.1 按照空口频段分 2.2 按照网络设 ...

最新文章

  1. 诺贝尔奖得主Paul Krugman认可bch发展路线
  2. 卡式水分滴定仪预测模型分析
  3. 开发日记-20190425 关键词 gradle基础学习 7年之约 启动篇
  4. EOS 核心功能 (2) nodeos
  5. C++ Primer 5th笔记(7)chapter7 类
  6. Leaflet中原生方式实现测量面积
  7. could not insert into NHibernate数据库问题解决
  8. Keil | 解决Keil双击工程名无法打开.map的问题
  9. OSChina 周五乱弹 —— 你专业是啥,被叫去搬砖了吗?
  10. HTML怎么显示折后价格,HTML打折计算价格实现原理与脚本代码
  11. Linux环境下安装单实例MySQL 5.7
  12. php mysql 模型_ThinkPHP数据库与模型
  13. PHP - 主流开发框架 - 介绍
  14. 在线ps,修改证件照背景色
  15. 如何建立地球上任何一个区域的地形3d模型,并添加卫星或地貌贴图
  16. stm32f4有重映射么_STM32 端口复用重映射(USART Remap)
  17. pycharm破解操作
  18. 软件测试如何快速上手,了解KYM? 阿里总监是这样说的
  19. 千寻和省cors精度对比_千寻位置服务与CORS系统的精度探讨
  20. 机器之心年度盘点:2017年人工智能领域度备受关注的科研成果

热门文章

  1. 链表倒数第k个节点_面试题 02.02. 返回倒数第 k 个节点
  2. html 3d立体阴影效果图,CSS3打造带阴影的旋转3D图像
  3. Android客户端多线程实例分析
  4. python基础知识整理 第七节:单例设计模式、异常、模块、包、制作模块、文件
  5. 力扣(LeetCode)刷题,简单题+中等题(第20期)
  6. JAVA求是否为闰年,for-while循环,输出你好
  7. 【汇总】ElementUI中高频次使用代码片段
  8. gitlab如何克隆项目到本地进行开发,如何让webstorm项目右键菜单出现Git子菜单,右下角出现Matser分支
  9. 在Ubuntu 14.04 64bit上搭建单机本地节点Spark 1.3.0环境
  10. 从头开始学习Adobe Photoshop CC图像编辑