我发明这个方法来实现你的功能,(不知是不是我第一个发明,:-)):
public void BindGrid(int PageIndex)
{
string strSql, strSql1;
strSql = "Select GroupID, GroupName, SortOrder, Re From Groups";
strSql1 = "select count(*) from groups";
OleDbConnection connCip= new OleDbConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
OleDbCommand cmdCip = new OleDbCommand(strSql,connCip);
cmdCip.CommandType = CommandType.Text;

connCip.Open(); cmdCip.CommandText = strSql1;
int count = System.Convert.ToInt32(cmdCip.ExecuteScalar());
cmdCip.CommandText = strSql;
OleDbDataReader dr = cmdCip.ExecuteReader(); int i = 0;
if (i <  PageIndex * DataGrid1.PageSize)
{
while (i < PageIndex * DataGrid1.PageSize)
{
dr.Read();
i++;
}
}
DataGrid1.VirtualItemCount = count;
DataGrid1.CurrentPageIndex = PageIndex;
DataGrid1.DataSource = dr;
DataGrid1.DataBind();

connCip.Close(); }第一次打开页面时用 BindGrid(0) 来调用。翻页时用 BindGrid(e.NewPageIndex)来调用。