摘要:在做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);
}
}
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);
}
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+" | ");
}
}
}