DataGrid翻页后删除记录出错的解决方案[转帖]
来源:互联网 发布:网站数据迁移什么意思 编辑:程序博客网 时间:2024/04/30 16:06
当DataGrid翻到最后一页后,如果当前页的数据只有一条,那么删除这条记录就会出现“异常详细信息: System.Web.HttpException: 无效的 CurrentPageIndex 值。它必须大于等于 0 且小于 PageCount。”这样的错误,出现这个错误的原因是当最后一页上的这条记录被删除并重新绑定数据之后,DataGrid的总页数减少了一页,而它的CurrentPageIndex属性值却仍然是删除记录前最后一页的页索引值,这个值超出了它的总页数。一些网友解决这个问题的方法是:在删除记录之后立即将DataGrid的CurrentPageIndex设为0,即跳回第一页,这个方法虽然可以避免再发生这样的错误,然而却很不灵活,因为如果用户要删除最后一页上的两条记录,那么在删除了其中一条后,不得不重新点击分页按钮进入最后一页来删除第二条,而且很多时候这种方法会给用户带来困扰,因为很容易把跳转到的第一页的数据当成是正执行删除命令的最后一页的数据,其实这个问题有更好的解决办法,如果我们用的是DataGrid的内建的删除功能,即一次只能删除一条记录的话,那么在它的DeleteCommand事件处理程序中,可以通过下面的方法,来实现当最后一页没有数据时,自动跳回前一页,否则只需要重新绑定数据即可:
void DataGrid1_Delete(object src,DataGridCommandEventArgs e){
//执行删除命令,从数据库或其它保存数据的地方删除DataGrid中对应的记录(略)
//如果当前页上只有一条数据并且DataGrid的当前页索引大于0,那么就让DataGrid返回上一页
if(DataGrid1.Items.Count==1&&DataGrid1.CurrentPageIndex>0){
DataGrid1.CurrentPageIndex--;
}
//重新绑定数据
BindData();
}
如果用了模板列中的CheckBox,实现一次删除多条选中的记录的话,那么可以在删除按钮的Click事件处理程序中这样来实现上面的功能:
void deleteButton_Click(object src,EventArgs e){
int deletedRows=0; //记录删除掉的行数
foreach(DataGridItem item in DataGrid1.Items){
if(item.ItemType==ListItemType.Item||item.ItemType==ListItemType.AlternatingItem){
CheckBox ckbox=item.FindControl("delckbox") as CheckBox;
if(ckbox!=null&&ckbox.Checked){
deletedRows++;
//从数据库或其它保存数据的地方删除DataGrid中对应的记录(略)
}
}
}
//如果当前页的记录总数等于已经被删除掉的记录数并且DataGrid当前页索引大于0,那么让DataGrid返回上一页
if(deletedRows==DataGrid1.Items.Count&&DataGrid.CurrentPageIndex>0){
DataGrid1.CurrentPageIndex--;
}
//重新绑定数据
BindData();
}
- DataGrid翻页后删除记录出错的解决方案[转帖]
- 关于DataGrid最后一页只有一行记录时,删除此记录出错的问题
- datagrid自动分页后,进行删除记录
- DataGrid中删除最后一页的记录时出错的解决办法
- DataGrid中删除最后一页的记录时出错的解决办法
- DataGrid中删除最后一页的记录时出错的解决办法
- DataGrid中删除最后一页的记录时出错的解决办法
- DataGrid中删除最后一页的记录时出错的解决办法
- DataGrid中删除最后一页的记录时出错的解决办法
- DataGrid中删除最后一页的记录时出错的解决办法
- 由DataGrid翻页所导致的诸多问题的解决方案
- DataGrid删除记录弹出对话框的解决办法
- 解决EasyUi中的DataGrid删除一条记录后,被删除的数据仍处于被选中状态问题
- 解决EasyUi中的DataGrid删除一条记录后,被删除的数据仍处于被选中状态问题
- datagrid编辑、修改、删除、翻页例子
- datagrid编辑、修改、删除、翻页例子
- datagrid 修改 删除记录
- DATAGRID删除最后一行时出错的解决办法
- MySQL 1366 错误解决办法
- b/s指纹系统开发总结
- J2EE
- Polycom® HDX 9000
- 分支限界求解TSP问题
- DataGrid翻页后删除记录出错的解决方案[转帖]
- 长寿食疗歌
- 两个字母搞定J2EE通用分页标签(二)
- sql导入/导出
- 搞定VS2005丢失的即时窗口
- SqlHelper详解和原码
- 我家附近的烂尾楼
- poj-1028
- asp.net指更新所有。。