日期:2014-05-17  浏览次数:20465 次

根据查询条件对数据进行分页,使用的是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相当于重新访问页面了奥!
你要在加载页面时候判断查询条件有无,并且分页啊!