在使用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代替

代码很乱,敬请谅解!

感谢我的好友小琳在此提供了技术支持,他是一位出色的软件工程师。

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

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

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

  2. SSh结合Easyui实现Datagrid的分页显示

    近日学习Easyui,发现非常好用,界面很美观.将学习的心得在此写下,这篇博客写SSh结合Easyui实现Datagrid的分页显示,其他的例如添加.修改.删除.批量删除等功能将在后面的博客一一写来. ...

  3. asp.net datagrid 自定义分页

    ASP.NET带给我们很多惊喜,强大的Web Form控件自然是其中的重要部分.这其中,最受关注的当然是Datagrid.在ASP中用HTML标记语法来输出数据的方法在Datagrid数据绑定面前显得 ...

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

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

  5. linux 下删除文件的 操纵

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

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

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

  7. WPF 实现 DataGrid/ListView 分页控件

    原文:WPF 实现 DataGrid/ListView 分页控件 在WPF中,通常会选用DataGrid/ListView进行数据展示,如果数据量不多,可以直接一个页面显示出来.如果数据量很大,200 ...

  8. 关于Jquery EasyUI中的DataGrid服务器端分页随记

    一.关于DataGrid的分页和排序参数 对于分页参数不需要用户指定,程序在AJAX请求的时候会带上分页和排序需要的参数 每页显示条数:rows 当前页:page 排序字段:sort  [multiS ...

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

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

最新文章

  1. 10.30 linux和windows互传文件,用户配置文件和密码配置文件,用户组管理,用户管理...
  2. Kafka的消息格式
  3. vscode如何及时提示flutter代码
  4. uC/OS-II源码分析(总体思路 三)
  5. tidevice.exceptions.MuxServiceError: Could not start service: com.apple.testmanagerd.lockdown.secure
  6. html5 webview,HTML5+学习历程之webview经典案例
  7. 【项目经验】如何用TexturePacker Physicseditor开发游戏
  8. linux exfat分区格式化,技术|如何在 Linux 上将 USB 盘格式化为 exFAT
  9. php页面开发,PHP网站开发中常用的8个小技巧
  10. jconsole中无法显示本地启动的tomcat
  11. 数组string 转 long
  12. c++ 类全局变量_static在C和C++中的用法总结
  13. wps excel 操作指南
  14. GEE主成分分析全解析
  15. eve为什么服务器还在维护,EVE无法进入
  16. 怎么把IE地址栏搜索引擎变为百度搜索,而不安装百度搜霸等插件呢?
  17. php ios表情包,php处理APP中 emoji表情包的方法
  18. 域名查询工具DMitry
  19. 操作OMF(Oracle Managed Files,Oracle管理的文件)
  20. Scala学习笔记(2)-基础语法

热门文章

  1. 十六进制字符转化为十进制数字
  2. 量子计算机与人脑接口,量子信息科学:量子计算机、隐形传物与人脑量子运算...
  3. 前端HTML渲染带箭头的线
  4. tf.squeeze示例代码
  5. authc过滤器 shiro_shrio 权限管理filterChainDefinitions过滤器配置
  6. 基于点云描述子的立体视觉里程计快速鲁棒的位置识别方法
  7. 一个精简的开源点云库
  8. 【汇总】细数VSCode中那些能够真正意义提升开发效率、鲜为人知的快捷键
  9. Unity Pro builder创建模块化仓库建筑学习教程
  10. Blender写实产品创作学习教程