询问java分页求总页数的方法

wang_man521 2009-06-29 08:25:57
public int iRowCount = 0; //总数
public int iPageSize = 10; //每页显示数
public int iPageCount= 0; //总页数
public int iPage= 1; //当前页数
public int iStart = 0;
public int iEnd = 0;

public void setPageInfo(int page,int pageSize,int rowCount){
iPage = page;
iPageSize = pageSize;
iRowCount = rowCount;

if(iPage < 1) iPage = 1;
iPageCount = (iRowCount + iPageSize - 1) / iPageSize;

if(iPage != 1 && iPage > iPageCount) iPage = iPageCount;
iStart = (iPage-1)*iPageSize+1;
iEnd = iPage*iPageSize;
}

iPageCount = (iRowCount + iPageSize - 1) / iPageSize;我要问的就是这句话,哪位高手给讲解一下,谢谢!!!
...全文
2611 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wang_man521 2009-06-29
  • 打赏
  • 举报
回复
ok,3Q各位
wu_jia_08 2009-06-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 mydeman 的回复:]
引用 3 楼 wang_man521 的回复:
呵呵,各位大侠,我问的不是那个意思哦!

我只想知道这个算法的意思,总页数=(总页数+每页显示的条目-1)/每页显示的条目,就是想不明白谢谢各位的回答了阿



你写的中文公式里好像有一个问题,应该是:

总页数=(总记录条目数+每页显示的条目-1)/ 每页显示的条目

这个共识主要是用来解决总记录数不是正页数的情况,例如:
iRowCount = 23, iPageSize = 10, 结果 iPageCount =…
[/Quote]
很正确,弥补总记录数与每页显示的记录数不能整除的缺陷。
mydeman 2009-06-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wang_man521 的回复:]
呵呵,各位大侠,我问的不是那个意思哦!

我只想知道这个算法的意思,总页数=(总页数+每页显示的条目-1)/每页显示的条目,就是想不明白谢谢各位的回答了阿
[/Quote]

你写的中文公式里好像有一个问题,应该是:

总页数=(总记录条目数+每页显示的条目-1)/ 每页显示的条目

这个共识主要是用来解决总记录数不是正页数的情况,例如:
iRowCount = 23, iPageSize = 10, 结果 iPageCount = 3
如果用: 总记录数/每页显示的条目, 那么结果就是2,此时还要判断余数是否为0,从而确定总页数是否还需要加1.
公式中的减一,正好也避免,如果是正好满页时会多出一页的情况。

不知道这样说,是否明白?
vivian_000 2009-06-29
  • 打赏
  • 举报
回复
先介绍另一种算法给你:
1.当 (总记录数<总页数*每页显示数)
总页数=总记录数/每页显示数+1;即iPageCount=(iRowCount+iPageSize)/iPageSize
2.当 (总记录数=总页数*每页显示数)
总页数=总记录数/每页显示数;即iPageCount=iRowCount/iPageSize

总页数=(总记录数+每页显示数-1)/每页显示数 是对上述算法的一种优化。
wang_man521 2009-06-29
  • 打赏
  • 举报
回复
呵呵,各位大侠,我问的不是那个意思哦!

我只想知道这个算法的意思,总页数=(总页数+每页显示的条目-1)/每页显示的条目,就是想不明白谢谢各位的回答了阿
spade24 2009-06-29
  • 打赏
  • 举报
回复
public Pager(int _iRowCount) {
iRowCount = _iRowCount;
iPageCount=iRowCount /iPageSize ;
int mod=iRowCount %iPageSize ;
if(mod>0){
iPageCount++;
}
iPage= 1;
iStart = 0;
}

这样就可以了!
archko 2009-06-29
  • 打赏
  • 举报
回复
iPageCount 总数一般是从DB查出来的. 在你这个pageBean 类的构造函数里设置.
  public void setTotalCount(int totalCount) {
if (totalCount>0) {
this.totalCount=totalCount;
int iPageCount=totalCount/ipageSize;
if (totalCount%ipageSize>0) {
iPageCount++;
}
indexes=new int[iPageCount];
for (int i=0;i<iPageCount;i++) {
indexes[i]=ipageSize*i;
}
} else {
this.totalCount=0;
}
}

这样的

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧