前页
DataGrid1.CurrentPageIndex = Math.Min(0, DataGrid1.CurrentPageIndex - 1)
        DataGrid1.DataSource = DataSet
        DataGrid1.DataBind()后页
 DataGrid1.CurrentPageIndex = Math.Max(DataGrid1.CurrentPageIndex + 1, DataGrid1.PageCount - 1)
        DataGrid1.DataSource = DataSet
        DataGrid1.DataBind()

解决方案 »

  1.   

    首先要设置
    this.DataGrid1.AllowPaging = true;
    this.DataGrid1.PageSize = 10;
    代码如下:
    case "next":
    if (DataGrid1.CurrentPageIndex < (DataGrid1.PageCount - 1))
    {
    DataGrid1.CurrentPageIndex += 1;
    }
    break;
    case "prev":
    if (DataGrid1.CurrentPageIndex > 0)
    {
    DataGrid1.CurrentPageIndex -= 1;
    }
    break;
    case "last":
    DataGrid1.CurrentPageIndex = (DataGrid1.PageCount - 1);
    break;
    default:
    DataGrid1.CurrentPageIndex = System.Convert.ToInt32(arg);
    break;
      

  2.   

    private void NavigationButtonClick(object sender, System.EventArgs e)
    {
    string direction =((LinkButton)sender).CommandName;
    switch (direction.ToUpper())
    {
    case "FIRST" :
    DataGrid1.CurrentPageIndex = 0;
    break;
    case "PREVIOUS" :
    DataGrid1.CurrentPageIndex = Math.Max(DataGrid1.CurrentPageIndex -1, 0);
    break;
    case "NEXT" :
    DataGrid1.CurrentPageIndex = 
    Math.Min(DataGrid1.CurrentPageIndex + 1, 
    DataGrid1.PageCount - 1);
    break;
    case "LAST" :
    DataGrid1.CurrentPageIndex = DataGrid1.PageCount - 1;
    break;
    default :
    break;
    } DataGrid1.DataBind();
    }
      

  3.   

    private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
    {
    if (DataGrid1.CurrentPageIndex>=this.DataGrid1.PageCount ){DataGrid1.CurrentPageIndex=0;}
    else if (DataGrid1.CurrentPageIndex >=0){DataGrid1.CurrentPageIndex=e.NewPageIndex; }
    BindGrid();
    }
      

  4.   

    如果是大量数据的话 采用datagrid 的分页会很慢的,因为他是会把所有数据都下载下来,然后再进行分页的。
    建议采用 sql server 存储过程分页,速度快。