您的位置:首页 > 其它

分页条中显示数字页码的计算方法

2015-03-06 17:03 381 查看
摘要:在做web分页的时候,分页条中数字显示个数的计算方法。没有用现成的分页组建来做分页条。自己写了段简单的计算分页的代码。 2014-8-8 15:56:46 fix one bug. detailDesc: 使用 calcPage(4, 5, 4);将会导致分页异常。

页码多的时候,当前页始终保持是分页条中显示的最中间那页。

public static void main(String[] args) {

for (int i = 1; i <= 10; i++) {

for (int j = 1; j <= i; j++) {

calcPage(j, i, 2);

System.out.println();

}

System.out.println("***********************"+i);

}

}

/**

* 计算显示当前分页的起始页

* @param pageNum 当前页码

* @param pageCount 总页数

* @param sideNum 分页系数 分页条中显示几个数字页码。

* 显示数字页码个数 = 2 * sideNum + 1

*/

public static void calcPage(int pageNum,int pageCount,int sideNum){

int startNum = 0;

int endNum = 0;

if(pageCount<=sideNum){

endNum = pageCount;

}else{

if((sideNum+pageNum)>=pageCount){

endNum = pageCount;

}else{

endNum = sideNum+pageNum;

if((sideNum+pageNum)<=(2*sideNum+1)){

if((2*sideNum+1)>=pageCount){

endNum = pageCount;

}else{

endNum = 2*sideNum+1;

}

}else{

endNum = sideNum + pageNum;

}

}

}

if(pageNum<=sideNum){

startNum = 1;

}else{

if((pageNum+sideNum)>=pageCount){

if((2*sideNum+1)>=pageCount){

if((pageCount - 2*sideNum)>=1){

startNum = pageCount - 2*sideNum;

}else{

startNum = 1;

}

}else{

startNum = pageCount - 2*sideNum;

}

}else{

if((pageNum-sideNum)>=1){

startNum = pageNum - sideNum;

}else{

startNum = 1;

}

}

}

loopOut(startNum, endNum, pageNum);

}

/**

* 输出计算出来的当前分页详情

* @param startNum

* @param endNum

* @param pageNum

*/

public static void loopOut(int startNum,int endNum,int pageNum){

for (int i = startNum; i <= endNum; i++) {

if(i==pageNum){

//输出@符号,代表当前页

System.out.print(i+"@ | ");

}else{

System.out.print(i+" | ");

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: