根据查询条件对数据进行分页,使用的是AspNetPager控件
/// <summary>
/// 首页加载
/// </summary>
private void GetLoad()
{
DataTable dt = x_b_kucunBL.GetXiBao();
if (dt.Rows.Count > 0)
{
ANPager.RecordCount = dt.Rows.Count;
ViewState["dt"] = dt;
BindPage();
}
}
/// <summary>
/// 分页
/// </summary>
private void BindPage()
{
PagedDataSource pd = new PagedDataSource();
pd.DataSource = ((DataTable)ViewState["dt"]).DefaultView;
pd.PageSize = ANPager.PageSize;
pd.AllowPaging = true;
pd.CurrentPageIndex = ANPager.CurrentPageIndex - 1;
GdV_KuCun.DataSource = pd;
GdV_KuCun.DataBind();
}
protected void ANPager_PageChanged(object sender, EventArgs e)
{
GetLoad();
}
/// <summary>
/// 按条件检索
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btn_queren_Click(object sender, EventArgs e)
{
txtMessage.Visible = false;
//名称
string name = this.txt_name.Text.Trim();
string E = map.SearchMapSonNode(MapE);
DataTable dt = x_b_kucunBL.JianSuoKuCun(name);
ANPager.RecordCount = dt.Rows.Count;
ViewState["dt"] = dt;
BindPage();
}
根据条件查询后,数据显示的分页数是正确的,但点击下一页的时候,数据就全部显示出来了,根本不是条件查询后的数据
------解决方案--------------------
aspnetpager只是一个分页控件而已,他会根据你赋给他的总页数和分页记录数计算并显示分页导航。但实际每页要显示的数据与aspnetpager没有关系,需要你自己根据当前的页面来获取相关的记录。
------解决方案--------------------
1楼说的对,分页封装的方法很重要,给你个示例:
http://blog.csdn.net/dalmeeme/article/details/6769583
无非就是sql语句什么换一下。
------解决方案--------------------
在分页的时候,加断点看看的
------解决方案--------------------
肯定是你查询条件点击下页时丢失了啊,你是用url分页吧,url相当于重新访问页面了奥!
你要在加载页面时候判断查询条件有无,并且分页啊!