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


说明:
执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Web.HttpException: 无效的 CurrentPageIndex 值。它必须大于等于 0 且小于 PageCount。

源错误:

行 174: grdClass.DataSource = dt;
行 175: grdClass.DataBind();
行 176: }

这种情况是在删除当前分页的最后一条记录后出现的,以前没有发现,到网上找到了解决方法,但是不是很理想。
后来请教了高手,主要问题是删除后重新DataBind时没有记录,CurrentPageIndex的发生异常。
解决方法就是在DataBind时候用try;catch,刚学写程序还没用过try,别笑我,我也不是很懂,意思就是DataBind出错时,执行catch,在catch中加上this.DataGrid.CurrentPageIndex-=1,然后再DataBind();

private void Bind()
{
    prjFactory.LeaveWord lw 
= new prjFactory.LeaveWord();
    prjSystem.Qualifier qlf 
= new prjSystem.Qualifier();
    DataTable ds 
= lw.queryAsDataTable(qlf);
    
this.DataGrid.DataSource = ds;
    
try
    
{
    
this.DataGrid.DataBind();
    }

    
catch//(Exception e)
    {                this.DataGrid.CurrentPageIndex-=1;
    
this.DataGrid.DataBind();
    }

}
posted on 2005-04-12 00:51  壹地鷄毛  阅读(1048)  评论(4编辑  收藏  举报