AspNetPager我采用回传postback方式对GridView分页源码如下:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
}
else
{
BindGridView();
}
}protected void BindGridView()
{
//关键代码
PagedDataSource pds = new PagedDataSource();
pds.AllowPaging = true;
pds.DataSource = m_DbInterface.GetDataSet().Tables[0].DefaultView;
AspNetPager1.RecordCount = pds.DataSourceCount;
AspNetPager1.AlwaysShow = true;
pds.PageSize = AspNetPager1.PageSize;
pds.CurrentPageIndex = AspNetPager1.CurrentPageIndex - 1;
//_GridView.PageIndex = AspNetPager1.CurrentPageIndex - 1;
_GridView.DataSource = pds;
}protected void AspNetPager1_PageChanged(object src, EventArgs e)
{
SetGridViewAttribute(DataBase.DbSpecificOperator.QueryYk); }
现在碰到一个问题,就是点击分页的页码的时候,比如当前是第一页,我点第二页的页码,但gridview
还是显示第一页的内容,此时AspNetPager1.CurrentPageIndex = 1;而显示的页码确实是第二页的,红色字体但当我第二次点第二页的页码,此时的问题就奇怪了,
如下:
这一次选第二页,内容还是第一页的内容,但当我再点第一页的页码的时候,反而显示第二页的内容了就是说,第一页,第二页的内容正好反掉了我想问下,用回传方式分页,我上面的代码哪地方调用顺序错了还是怎样,为什么会出现如上的情况 啊?????
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
}
else
{
BindGridView();
}
}protected void BindGridView()
{
//关键代码
PagedDataSource pds = new PagedDataSource();
pds.AllowPaging = true;
pds.DataSource = m_DbInterface.GetDataSet().Tables[0].DefaultView;
AspNetPager1.RecordCount = pds.DataSourceCount;
AspNetPager1.AlwaysShow = true;
pds.PageSize = AspNetPager1.PageSize;
pds.CurrentPageIndex = AspNetPager1.CurrentPageIndex - 1;
//_GridView.PageIndex = AspNetPager1.CurrentPageIndex - 1;
_GridView.DataSource = pds;
}protected void AspNetPager1_PageChanged(object src, EventArgs e)
{
SetGridViewAttribute(DataBase.DbSpecificOperator.QueryYk); }
现在碰到一个问题,就是点击分页的页码的时候,比如当前是第一页,我点第二页的页码,但gridview
还是显示第一页的内容,此时AspNetPager1.CurrentPageIndex = 1;而显示的页码确实是第二页的,红色字体但当我第二次点第二页的页码,此时的问题就奇怪了,
如下:
这一次选第二页,内容还是第一页的内容,但当我再点第一页的页码的时候,反而显示第二页的内容了就是说,第一页,第二页的内容正好反掉了我想问下,用回传方式分页,我上面的代码哪地方调用顺序错了还是怎样,为什么会出现如上的情况 啊?????
_GridView.DataBind();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
BindGridView1(1);
} private void BindGridView1(int pageIndex)
{
DataSet ds = new DataSet();
ds.ReadXml(Server.MapPath("~/test.xml"));
DataTable dt = ds.Tables["学生信息"];
PagedDataSource pds = new PagedDataSource();
pds.AllowPaging = true;
pds.DataSource = dt.DefaultView;
pds.PageSize = 3;
pds.CurrentPageIndex = pageIndex - 1;
AspNetPager1.RecordCount = dt.Rows.Count;
GridView1.DataSource = pds;
GridView1.DataBind();
} protected void AspNetPager1_PageChanging(object src, Wuqi.Webdiyer.PageChangingEventArgs e)
{
BindGridView1(e.NewPageIndex);
}
我在下面引用DataBind了,没写出来
我改成你这种方式了,现在页码正常了!!非常感谢! 但还是有个问题,就是我不点击页码查询的时候都是好的,但我点击页码换页后,比如先前查到10月20号有几十条数据,显示出来了,但我换个日期查的时候,比如查10月25号的数据,但在GridView的第一行还是20号的数据,下面则都是25号的数据了为什么点击换页会有之前的残余数据?
{
BindGridView();
}
private void BindGridView1()
{ Gridview.DataSource=ds;
AspNetPager1.RecordCount=占总数‘;
}
protected void AspNetPager1_PageChanging(object src, Wuqi.Webdiyer.PageChangingEventArgs e)
{
AspNetPager1.CurrentPageIndex = e.NewPageIndex;
BindGridView();
}
一样可以
不要 PagedDataSource ,查询绑定很正常,
先设置dtasouce=null.再绑定