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

asp.net设置每页显示的条数,但还是显示全部条数
在repeater中,设置每页显示条数,但还是把全部数据显示出来,
考虑是BindRepeater的问题,但是多次调试还是找不出答案,求解答。
 (绑定) protected void BindToRepeater()
  {

  sql = "select * from T_Register order by F_RegisterTime desc";
  DbDataAdapter da = cs.GetAdapter(sql); 
  DataSet ds = cs.GetDataSet(sql);
  da.Fill(ds, AspNetPager1.PageSize * (AspNetPager1.CurrentPageIndex - 1), AspNetPager1.PageSize, "task");
  DataTable dt = ds.Tables["task"]; 
  rpMember.DataSource = ds;
  rpMember.DataBind();
   
  }
 (txtSeperate.Text是输入每页显示条数) 
  protected void btnSeperate_Click1(object sender, EventArgs e)
  {
  AspNetPager1.PageSize = Convert.ToInt32(txtSeperate.Text);
  BindToRepeater();
  }
求指点,。急

------解决方案--------------------
分页显示需要计算下总页数,还有绑定最好带上当前的页码。
这些都没有在你的代码中看到
------解决方案--------------------
sql = "select * from T_Register order by F_RegisterTime desc";
你这个是全部数据提取出来绑定了
aspnetpage 这个控件不会自动帮你分数据的
你要自己写sql实现分页
像这样:
select * (
select *,row_number over (order by f_registertime desc) as rn from t_register) as t
where t.rn between 1 and 10
------解决方案--------------------
各种分页的技术方案已经十分成熟了。
从WINFORM的虚拟分页到asp.net的SEO分页、ajax分页等等。

其实不外乎就两步:
第1. COUNT(*)算总数
第2. 用分页sql查询当前页数据返回。

客户端的分页符号表现形式也有多种,偷懒的,只显示上一页下一页再加个下拉列表,精细一点的,显示和当前页连接的连续页号,再加上最前最末页,2B一点的,把所有页号显示在屏幕上,喜欢耍酷的,用滚动条一直往下拖,拖到哪里就从服务器获取哪里的数据。
------解决方案--------------------
楼主有误会,AspNetPager不会帮你实现对数据进行分页,它的PageSize属性只是给你做为分页的参数用做获取分页数据之用,AspNetPager只显示一系列分页导航按钮并实现翻页事件(PageChanged),和数据没有直接关系,所以你需要自己获取并过滤当前页数据然后将该数据显示在数据绑定控件上,详细帮助及示例请看:http://www.webdiyer.com/controls/aspnetpager
------解决方案--------------------
第n页的数据就要读取 (n-1)*每页显示的条数~n*每页显示的条数 条数据,这些都是后台代码里完成的。