private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
  DataGrid1.CurrentPageIndex=0;
  if(全部显示记录)
 { 
   DataGrid1.CurrentPageIndex=e.NewPageIndex;
   SQl语句=“select from .....”//没有where 条件
   DataGrid1.DataSource=....
   DataGrid1.DataBind();
  }
if(如果按某一条件查询)
{
   DataGrid1.CurrentPageIndex=e.NewPageIndex;
   MyDataBase MySearch=new MyDataBase();  //我自己写的一个连接数据库的类
   MySearch.SqlString="select * from tb_news_bj where B_name like '%"+"TB_search.Text"+"%'";
  DataGrid1.DataSource=MySearch.CreateSource();
  DataGrid1.DataBind();

}
}

解决方案 »

  1.   

    不防先判断一下DataSource的记录条数,然后计算出总页数,如果e.NewPageIndex > 总页数则设为最后一页.
      

  2.   

    不太明白你的意思。
    感觉datagird自带的分页没什么用。
    不明白为什么你每次都要更新数据源,其实感觉只有查询条件改变时你更新一下,其它时候你就使用datagrid自带的分页就行了
      

  3.   

    不太明白你的意思。
    感觉datagird自带的分页没什么用。
    不明白为什么你每次都要更新数据源,其实感觉只有查询条件改变时你更新一下,其它时候你就使用datagrid自带的分页就行了