我有个B页面 在点击查询后数据分页查出来了。在点击下一页时数据全部出来了,怎么解决呀 应该出来的是跟查询有关的数据吗。
/// <summary>
/// 绑定数据
/// </summary>
public void GetListBuilding(int pageIndex, int PageSize, string strSql)
{
DataSet ds = BizDal.GetList(PageSize,pageIndex,"","PubDate desc","",strSql,1);
this.GridView1.DataSource = ds.Tables[0].DefaultView;
int Count = Convert.ToInt32(ds.Tables[1].Rows[0][0].ToString());
int totalPages=int.Parse(Math.Ceiling((double)Count/PageSize).ToString());
if (totalPages > 0)
{
if ((pageIndex + 1) > totalPages)
{
pageIndex = totalPages;
}
}
else
{
pageIndex = 0;
}
this.GridView1.DataBind();
int page_Count = totalPages;
int page_Current = pageIndex;
Page02_1.Page_Index = "BuildingView.aspx";
Page02_1.Record_Count = Count;
Page02_1.Page_Count = page_Count;
Page02_1.Page_Size = PageSize;
Page02_1.Page_Current = page_Current;
}
断点,然后看pageIndex和pageSize是否已经传进来,不过我没明白,你的分页自己做的,还是别人的控件。
DataSet ds = BizDal.GetList(PageSize,pageIndex,"","PubDate desc","",strSql,1);
查看PageSize,pageIndex传的是否正确?
应该是你查询点击查询时页面刷新了,而分页条件没有保存,将查询条件在刷新先保存下
这个问题不难解决,给你个思路,如果你开发用linq的话,这样,非常好实现,利用一些基本的逻辑和linq语法像skip take 等就可以轻松实现,不困难,如果你用原生的ado.net开发,也不困难,你可以利用存储过程分页的方式解决你这个问题:意思是,有一个专门的存储过程是用来分页的,然后前台调用它就OK.这些都很好实现.