很正常。
在第二次查询前面,首先设置CurrentPageIndex=0。就可以了

解决方案 »

  1.   

    是不是页面初始化时少写了
      if (!Page.IsPostBack)
      {
    BindGrid();  //重新绑定
      }
      

  2.   

    再你的查询中加入
    DataGride.CurrentPageIndex=0;
    datagride.DataBind();
    因为查询后生成信数据集,帮定时线要初始化datagrid的页
      

  3.   

    分页的时候要考虑一下,如果页数比较多,你是不是要select * 全部取下来,这样性能会受很大影响的!
      

  4.   

    提供一个比较安全的方式:
    在你的PageIndexChanged事件响应函数里这样写:
    if(e.NewPageIndex >= 0 && e.NewPageIndex < datagrid1.PageCount)
    {
       datagrid1.CurrentPageIndex = e.NewPageIndex;
       DataBind(); //这里放你的邦定代码
    }
      

  5.   

    我有一个我认为是最简单最笨也非常安全的方法
    在选择的事件中加上一个if判断index
    Public Sub datagrid_itemcommand(ByVal s As Object, ByVal e As DataGridCommandEventArgs)
            DataGrid1.SelectedIndex = e.Item.ItemIndex        If DataGrid1.SelectedIndex <> -1 Then
                        '你的操作
            End If
        End Sub
    但翻页的代码可不变
    Public Sub datagrid_pageindexchanged(ByVal s As Object, ByVal e As DataGridPageChangedEventArgs)
            DataGrid1.CurrentPageIndex = e.NewPageIndex
            binddatagrid1()
        End Sub
      

  6.   

    我以前也遇到同样问题,正如 howbigsea(大海) 所说的在第二次查询前面,首先设置CurrentPageIndex=0,然后再DataBind()就没问题了
      

  7.   

    如果是postback 的时候就重新绑定!!