DataGrid在分页状态下删除纪录的问题
在使用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在分页状态下删除纪录的问题相关推荐
- 在分页状态下删除纪录的问题
在使用DataGrid分页的时候,正常情况下,绑定数据库列表纪录时会自动产生分页的效果,然而我发觉在删除纪录的时候总会发生"无效的 CurrentPageIndex 值.它必须大于等于 0 ...
- SSh结合Easyui实现Datagrid的分页显示
近日学习Easyui,发现非常好用,界面很美观.将学习的心得在此写下,这篇博客写SSh结合Easyui实现Datagrid的分页显示,其他的例如添加.修改.删除.批量删除等功能将在后面的博客一一写来. ...
- asp.net datagrid 自定义分页
ASP.NET带给我们很多惊喜,强大的Web Form控件自然是其中的重要部分.这其中,最受关注的当然是Datagrid.在ASP中用HTML标记语法来输出数据的方法在Datagrid数据绑定面前显得 ...
- 计算机广播状态下操作,二,操作题:1
二,操作题:1 (2008-11-19 13:29:23) 标签: 杂谈 二,操作题: 操作 1 题目: 打开WINDOWS 98的资源管理器,按顺序进行如下操作: 1.在 A 盘根目录下的NJDD目 ...
- linux 下删除文件的 操纵
linux 下删除 文件的 方法::: 1- remove remove(删除文件) 相关函数 link,rename,unlink 表头文件 #include<stdio.h> 定 ...
- 浅谈:MyBatis-Plus的CRUD与乐观锁,分页插件,逻辑删除
浅谈:MyBatis-Plus的CRUD与乐观锁,分页插件,逻辑删除 MyBatis-Plus官方文档连接 什么是MyBatis-Plus 请点击上面官方文档查看 代码演示:代码注释为功能详细解释 数 ...
- WPF 实现 DataGrid/ListView 分页控件
原文:WPF 实现 DataGrid/ListView 分页控件 在WPF中,通常会选用DataGrid/ListView进行数据展示,如果数据量不多,可以直接一个页面显示出来.如果数据量很大,200 ...
- 关于Jquery EasyUI中的DataGrid服务器端分页随记
一.关于DataGrid的分页和排序参数 对于分页参数不需要用户指定,程序在AJAX请求的时候会带上分页和排序需要的参数 每页显示条数:rows 当前页:page 排序字段:sort [multiS ...
- c4503文件服务器,理光C3503/C4503/C5503检查状态下各项目说明解释
理光C3503/C4503/C5503检查状态下各项目说明解释 使用复印机.文件服务器或打印机模式打印的作业会临时储存在理光复印机中,然后依次执行.您可以在理光复印机[检查状态]显示屏或[作业列表]显 ...
最新文章
- 10.30 linux和windows互传文件,用户配置文件和密码配置文件,用户组管理,用户管理...
- Kafka的消息格式
- vscode如何及时提示flutter代码
- uC/OS-II源码分析(总体思路 三)
- tidevice.exceptions.MuxServiceError: Could not start service: com.apple.testmanagerd.lockdown.secure
- html5 webview,HTML5+学习历程之webview经典案例
- 【项目经验】如何用TexturePacker Physicseditor开发游戏
- linux exfat分区格式化,技术|如何在 Linux 上将 USB 盘格式化为 exFAT
- php页面开发,PHP网站开发中常用的8个小技巧
- jconsole中无法显示本地启动的tomcat
- 数组string 转 long
- c++ 类全局变量_static在C和C++中的用法总结
- wps excel 操作指南
- GEE主成分分析全解析
- eve为什么服务器还在维护,EVE无法进入
- 怎么把IE地址栏搜索引擎变为百度搜索,而不安装百度搜霸等插件呢?
- php ios表情包,php处理APP中 emoji表情包的方法
- 域名查询工具DMitry
- 操作OMF(Oracle Managed Files,Oracle管理的文件)
- Scala学习笔记(2)-基础语法
热门文章
- 十六进制字符转化为十进制数字
- 量子计算机与人脑接口,量子信息科学:量子计算机、隐形传物与人脑量子运算...
- 前端HTML渲染带箭头的线
- tf.squeeze示例代码
- authc过滤器 shiro_shrio 权限管理filterChainDefinitions过滤器配置
- 基于点云描述子的立体视觉里程计快速鲁棒的位置识别方法
- 一个精简的开源点云库
- 【汇总】细数VSCode中那些能够真正意义提升开发效率、鲜为人知的快捷键
- Unity Pro builder创建模块化仓库建筑学习教程
- Blender写实产品创作学习教程