int pageCount=(count+pageSize-1)/pageSize;//这里不明白为什么要-1,谁能解释下。谢谢了!
count是list的第一条数据
pageSize是页面显示数
+起来当然要-1
不然的话页面显示会多出条记录的
如果页面设定了最大显示数,会出错的
count是list的第一条数据
pageSize是页面显示数
+起来当然要-1
不然的话页面显示会多出条记录的
如果页面设定了最大显示数,会出错的
int pageCount=(count-1)/pageSize + 1;其实是这样 总条数/每页的条数 就是页数,但是在程序中的除法运算
它只取整数的那部分,所以如果比方说得到了个2.4,那么它会认为是2,所以
后面加1;但你再想如果正好得到了个整数呢,比方说得到了个3,那么后面再加1
就多出了一页,所以为了让前面 除得的结果还是比得到的整数小1,那么让它的总
条数少1,得到的页数自然就少1,后面又将页数加1,得到的结果正好。不知你看明白没
pageSize:每页记录数
直接用count/pageSize无法判断实际页数。
例:10/5=2,6/5=1
上例中的总页数都应为2页,但6/5会得到不正的答案。{count+pageSize-1)/pageSize就不同了,
相当于在原总记录数+不大于页数的最大值(加上了不到一页的记录数),
这时再除以pageSize就可以判断整分页和count/pageSize不能整除的情况了。
例:(10+(5-1))/5=2,(6+(5-1))/5=2
count整除pageSize的时候,整除运算结果不受影响;
count不能整除pageSize时,使余数+小于页记录数的最大值>页记录数的最大值,进位(同时进位数不会>1),这样再整除,实现了在此种情况下分页操作时最后n条记录也需占用一页的效果。