给你段代码参考一下
//数据绑定
public void BindGrid()
{
String sql = "select * from tb_role";
OleDbDataAdapter myCommand = new OleDbDataAdapter(sql, myConnection);
DataSet ds = new DataSet();
myCommand.Fill(ds, "tb_role");
if (ds.Tables["tb_role"].Rows.Count !=0) //如果表不空,绑定数据
{
MyDataGrid.DataSource=ds.Tables["tb_role"].DefaultView;
MyDataGrid.DataBind();
}
ShowStats();
}
//-------------翻页代码开始
void PagerButtonClick(Object sender, EventArgs e)
{
//获得LinkButton的参数值
String arg;
arg = ((LinkButton)sender).CommandArgument;
switch(arg)
{
case ("next"):
if (MyDataGrid.CurrentPageIndex < (MyDataGrid.PageCount - 1))
MyDataGrid.CurrentPageIndex ++;
break;
case ("prev"):
if (MyDataGrid.CurrentPageIndex > 0)
MyDataGrid.CurrentPageIndex --;
break;
case ("last"):
MyDataGrid.CurrentPageIndex = (MyDataGrid.PageCount - 1);
break;
case ("go"):
if ((Convert.ToInt32(TxtCurrentIndex.Text)>0) && (Convert.ToInt32(TxtCurrentIndex.Text)<=(MyDataGrid.PageCount)))
MyDataGrid.CurrentPageIndex = Convert.ToInt32(TxtCurrentIndex.Text)-1;
break;
default:
//本页值
MyDataGrid.CurrentPageIndex = Convert.ToInt32(arg);
break;
}
BindGrid();
}
void MyDataGrid_Page(Object sender, DataGridPageChangedEventArgs e)
{
//处理按下数字的方法
MyDataGrid.CurrentPageIndex = e.NewPageIndex;
BindGrid();
}
void ShowStats()
{
//显示页面信息
int tempindex = (int)MyDataGrid.CurrentPageIndex+1;
lblCurrentIndex.Text = "当前页为" + tempindex.ToString();
TxtCurrentIndex.Text = tempindex.ToString();
lblPageCount.Text = "/共" + MyDataGrid.PageCount + "页";
}
//----------------------翻页代码结束
//数据绑定
public void BindGrid()
{
String sql = "select * from tb_role";
OleDbDataAdapter myCommand = new OleDbDataAdapter(sql, myConnection);
DataSet ds = new DataSet();
myCommand.Fill(ds, "tb_role");
if (ds.Tables["tb_role"].Rows.Count !=0) //如果表不空,绑定数据
{
MyDataGrid.DataSource=ds.Tables["tb_role"].DefaultView;
MyDataGrid.DataBind();
}
ShowStats();
}
//-------------翻页代码开始
void PagerButtonClick(Object sender, EventArgs e)
{
//获得LinkButton的参数值
String arg;
arg = ((LinkButton)sender).CommandArgument;
switch(arg)
{
case ("next"):
if (MyDataGrid.CurrentPageIndex < (MyDataGrid.PageCount - 1))
MyDataGrid.CurrentPageIndex ++;
break;
case ("prev"):
if (MyDataGrid.CurrentPageIndex > 0)
MyDataGrid.CurrentPageIndex --;
break;
case ("last"):
MyDataGrid.CurrentPageIndex = (MyDataGrid.PageCount - 1);
break;
case ("go"):
if ((Convert.ToInt32(TxtCurrentIndex.Text)>0) && (Convert.ToInt32(TxtCurrentIndex.Text)<=(MyDataGrid.PageCount)))
MyDataGrid.CurrentPageIndex = Convert.ToInt32(TxtCurrentIndex.Text)-1;
break;
default:
//本页值
MyDataGrid.CurrentPageIndex = Convert.ToInt32(arg);
break;
}
BindGrid();
}
void MyDataGrid_Page(Object sender, DataGridPageChangedEventArgs e)
{
//处理按下数字的方法
MyDataGrid.CurrentPageIndex = e.NewPageIndex;
BindGrid();
}
void ShowStats()
{
//显示页面信息
int tempindex = (int)MyDataGrid.CurrentPageIndex+1;
lblCurrentIndex.Text = "当前页为" + tempindex.ToString();
TxtCurrentIndex.Text = tempindex.ToString();
lblPageCount.Text = "/共" + MyDataGrid.PageCount + "页";
}
//----------------------翻页代码结束
我认为还是数据绑定的问题,跳转后看看数据源还有几条记录
{
int startPage;
startPage = currentPage * pageSize;
^^^^^^
这个currentPage在这个时候是什么值?0?我没见这个过程中有定义啊。楼主用断点查查。
另,如果你要用viewstate来存currentPage的值,不妨把这个currentPage做成属性(Property),然后在get里设置其等于viewstate的值。
代码太乱,没仔细看。