zoukankan
html css js c++ java
如何解决DataGrid中删除记录后分页错误
经常遇到这样的问题,就是在DataGrid中删除了几条记录后,总页数已经改变,但当前所在的页并没有变,这时很有可能出现所在页小于总页数的可能,于会得到一个错误:当前页数不能小于0且不能大于总页数。
这个问题往往在设计时被忽略,而且在测试时也很容易忽略掉,因为如果只是一条一条的删除记录,那么在最后一页上只有一条记录,以及正好删除这条记录的机率很小,所以可能被忽略掉。如果这样,可以在删除记录的代码后添加这样语句子防止错误:
if
(this.DataGrid1.CurrentPageIndex
>
0
&&
e.Item.ItemIndex
==
0
)
{
this.DataGrid1.CurrentPageIndex
--
;
}
上面条的条件正好是最后一页只有一条且要删除的。。。。
还有一种情况,就是在一页中一次删除了多条记录,这时候就要记录删除的总数量,并计算总页数以及当前页数用来区分是否要回一页。
private
void LinkButton1_Click(
object
sender, System.EventArgs e)
{
CheckBox m_checkBox;
int
m_deleted
=
0
;
foreach(DataGridItem m_record in DataGrid1.Items)
{
m_checkBox
=
m_record.Cells[
0
].Controls[
1
]
as
CheckBox;
long
m_mailID
=
0
;
if
(m_checkBox!
=
null
&&
m_checkBox.Checked)
{
m_mailID
=
Convert.ToInt64(DataGrid1.DataKeys[m_record.ItemIndex]);
WaveMessages.DeleteMessagesByID(m_mailID);
m_deleted
++
;
}
}
if
((this.DataGrid1.Items.Count
-
m_deleted)
/
this.DataGrid1.PageSize
<=
this.DataGrid1.CurrentPageIndex)
{
if
(this.DataGrid1.CurrentPageIndex
>
0
) this.DataGrid1.CurrentPageIndex
--
;
}
this.LoadMessagesData();
}
其中最后两个IF就是用来判断是否满足条件并回滚一页。
================================
/\_/\
(=^o^=)
Wu.Country@侠缘
(~)@(~)
一辈子,用心做一件事!
--------------------------------
学而不思则罔,思而不学则怠!
================================
查看全文
相关阅读:
反向代理与正向代理
vs2017 调试时出现 cannot connect to runtime process错误
.net core 配置swagger遇到的坑
VC++下使用ADO操作数据库
[转] CSS transition
Javascript 函数和模块定义
Service 如何知道caller
[转] json in javascript
[转] 让ctags支持Javascript
[转] 使用NVM快速搭建NODE开发环境
原文地址:https://www.cnblogs.com/WuCountry/p/334518.html
最新文章
[数据库]MySQL之备份与恢复【未完待续】
[数据库/Java]数据库开发过程中产生的MySQL错误代码及其解决方案
[Java]变量及其初始化 与 类对象的初始化
[Java]大数运算之加法
[转载/摘抄]开源协议
[数据库]MySQL之SQL查询
[数据库]MYSQL之存储过程
[数据库]MYSQL之InnoDB存储引擎 VS MYISAM存储引擎
[数据结构]二叉搜索树(BST) VS 平衡二叉排序树(AVL) VS B树(平衡多路搜索树) VS B+树 VS 红黑树(平衡二叉B树)
[Java]排序算法>插入排序>【折半插入排序】(O(N*N)/稳定/N较大/无序/顺序存储)
热门文章
[Java]排序算法>插入排序>【直接插入排序】(O(N*N)/稳定/N较小/有序/顺序存储+链式存储)
[Java]排序算法>交换排序>【冒泡排序】(O(N*N)/稳定/N较小/有序/顺序+链式)
[Java]排序算法>选择排序>【简单选择排序】(O(n*n)/不稳定/)
[Java]排序算法>交换排序>【快速排序】(O(N*logN)/不稳定/N较大/无序/仅顺序存储)
[Java]【异常处理】在项目开发中的通用规范
(语法基础)浅谈C#中的 async await 以及对线程相关知识的复习
VScode开发Vue项目,关闭eslint代码检查,以及相关配置
万恶的浏览器缓存 Vuex state里面的成员改名后浏览器不会马上更新
如何快速的自定义博客园背景图片
入坑Vue
Copyright © 2011-2022 走看看