在  datagrid 的PageIndexChanged事件中写:
ProjectsGrid.DataSource=ds.Tables["Project"];
ProjectsGrid.CurrentPageIndex=e.NewPageIndex;
ProjectsGrid.DataBind();错误:无效的 CurrentPageIndex 值。它必须大于等于 0 且小于 PageCount不知道为什么请高手指点我

解决方案 »

  1.   

    ProjectsGrid.CurrentPageIndex=e.NewPageIndexe.NewPageIndex 的值大于最大页数. 比如你的数据集里面分页数为 10 页 
    e.NewPageIndex 的值到了11页就会出问题.做个判断先
      

  2.   

    你绑定时最好把 CurrentPageIndex  的值赋为0
    因为你在查询前后PageCount值是不一样的,自然 CurrentPageIndex  的值可能大于了PageCount
      

  3.   

    在ProjectsGrid.DataSource=ds.Tables["Project"];这一行设个断点跟踪一下,看看ds里有没有数据;需要注意,DataSet的数据在postback后不会保存下来,需要重新从数据库读取
      

  4.   

    我在datagrid的数据集里面分页数为 10 页 
    每页5条记录
    但是当我点到第2页的时候就出错误了
      

  5.   

    我认为
    ProjectsGrid.CurrentPageIndex=e.NewPageIndex
    这条语句是把新的的页码传给当前的页码,
    然后在重新绑定datagrid应该没问题啊
    我不绑定数据库就不回出错了
    不知道为什么 啊
      

  6.   

    在事件中最前加下面一句ProjectsGrid.CurrentPageIndex=0
      

  7.   

    http://community.csdn.net/Expert/topic/4445/4445490.xml?temp=7.423037E-02
    你看看这个
      

  8.   

    你先看看你的pagecount是多少,后再看你点击的页数有没有大于这数呢?
      

  9.   

    case "PREVIOUS" :
    this.dgrDepartmentAdmin.CurrentPageIndex = 
    Math.Max(this.dgrDepartmentAdmin.CurrentPageIndex -1, 0);
    break;
    case "NEXT" :
    this.dgrDepartmentAdmin.CurrentPageIndex = 
    Math.Min(this.dgrDepartmentAdmin.CurrentPageIndex + 1, 
    this.dgrDepartmentAdmin.PageCount - 1);我这是一个上一页下一页的功能,希望能对你有帮助。