无效的 CurrentPageIndex 值。它必须大于等于 0 且小于 PageCount

本文介绍两种常见情况下Datagrid出现无效的CurrentPageIndex值错误的原因及解决方案。一种是在不同数据集间切换时,另一种是在删除最后一页的唯一记录时。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

无效的 CurrentPageIndex 值。它必须大于等于 0 且小于 PageCount。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

情况一,两个文章类,A类文章有3页,B类文章有2页,绑定于同一个datagrid内,通过dropdownlist来切换绑定数据源时,如果在A类第3页时此时想切换到B类,则会提示
无效的 CurrentPageIndex 值。它必须大于等于 0 且小于 PageCount
造成这个的原因是,当前datagrid的CurrentPageIndex(当前页)处于第三页,而B类并没有第三页,B类最大只有第二页,所以会导致CurrentPageIndex异常。

解决办法:在dropdownlist的SelectedIndexChanged事件中加入:myDg.CurrentPageIndex=0;//将当前页指定为第0页,避免发生异常

情况二,该情况经常发生,当datagrid删除多页中的最后一页的最后一条记录时会报该异常。
原因同样,此时当前页CurrentPageIndex处于最后一页,但当你将最后一条记录删除后,最后一页不存在,导致异常产生,针对此,使用网上很多人都转载的代码可以解决:

//首先判断当前页是否为最后一页,且该页只有最后一条记录
if((myDg.CurrentPageIndex==myDg.PageCount-1)&&myDg.Items.Count==1)
   {
    //如果当前页-1>1表示当前页为多页的最后一页

    if(myDg.CurrentPageIndex-1>1)
    {
     //由于是多页中的最后一页,且是最后一条记录,会产生异常,此时将当前页手动减1,避免异常

     myDg.CurrentPageIndex=myDg.CurrentPageIndex-1;
    }
    else
    {
   
     myDg.CurrentPageIndex=0;
    }
   }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值