我这有个索引越界问题比较麻烦,发生情况如下。
正常分页时没问题,但搜索条件中有一个附加条件是按正常和停用两种情况来搜索卡。
如果我搜出来的都是停用的卡,然后有两个分页,每行后面有个操作按钮,能够改变卡的状态,所以我依次点击改变状态后,原本停用的卡都正常了,应此也就不显示在当前的DataGrid中了,当第二分页的最后一个被改变时,应该转向分页1,但可能CurrentPageIndex还是等于2,所以就出现索引错误!请问有没有办法当出现错误的时候使程序知道,然后不显示这个错误,自动将CurrentPageIndex - 1呢?
PS:如果我一开始就CurrentPageIndex - 1会影响到分页的其他功能显示!

解决方案 »

  1.   

    给值前先判断一下当前页的index小于 数据源记录数.
    ------说错了莫怪。
      

  2.   

    有没有代码可以捕获这个错误?我已经确定只要CurrentPageIndex - 1就行,只是需要在发生这个错误时这样做才不会影响其他的功能~~
    3Q
      

  3.   

    cpp2017能具体说一下吗?怎么判断?
      

  4.   

    你在ItemCommand事件里判断一下,因为PageIndex改变,也会触发这个事件,这个时候就会出现index越界的错误
      

  5.   

    我突然想到重新查询再绑定一下应该能解决!Let me try!
      

  6.   

    如果你不改CurrentPageIndex还是要出错的
    应该是每次操作一个卡后重新计算CurrentPageIndex
    int iCount = 数据源行数
    int IntPageSize = 页行数
    CurrentPageIndex=(int)Math.Ceiling( (double)iCount /(double)IntPageSize ) -1;