PageInfo.java
上传用户:zghglow
上传日期:2022-08-09
资源大小:27227k
文件大小:3k
源码类别:

WEB源码(ASP,PHP,...)

开发平台:

JavaScript

  1. package com.chinacannel.common;
  2. import java.math.*;
  3. import java.util.*;
  4. public class PageInfo {
  5.     private int totalRows, totalPages;
  6.     private int startRow, endRow;
  7.     private int pageSize;
  8.     private int currentPageNO, firstPageNO,
  9.             lastPageNO;
  10.     private List rows=new Vector();
  11.     public int getTotalPages() {
  12.         return totalPages;
  13.     }
  14.     public int getTotalRows() {
  15.         return totalRows;
  16.     }
  17.     public int getPageSize() {
  18.         return pageSize;
  19.     }
  20.     public int getStartRow() {
  21.         return startRow;
  22.     }
  23.     public int getPreviousPageNO() {
  24.         return this.validPageNO(this.currentPageNO - 1);
  25.     }
  26.     public int getNextPageNO() {
  27.         return this.validPageNO(currentPageNO + 1);
  28.     }
  29.     public int getEndRow() {
  30.         return endRow;
  31.     }
  32.     public int getLastPageNO() {
  33.         return lastPageNO;
  34.     }
  35.     public int getFirstPageNO() {
  36.         return firstPageNO;
  37.     }
  38.     public int getCurrentPageNO() {
  39.         return currentPageNO;
  40.     }
  41.     public List getRows() {
  42.         return rows;
  43.     }
  44.     /**
  45.      * @param totalrows int
  46.      * @param pageno int
  47.      * @param pagesize int
  48.      */
  49.     public PageInfo(int totalrows, int pageno, int pagesize) {
  50.         this.totalRows = totalrows;
  51.         this.pageSize = pagesize;
  52.         this.totalPages = ceiling(totalrows, pagesize); //取得最大页数
  53.         this.firstPageNO = 0;
  54.         this.lastPageNO = this.totalPages-1;
  55.         this.currentPageNO = validPageNO(pageno);
  56.         //计算当前页的开始记录号,结束记录号;
  57.         this.startRow = (this.currentPageNO ) * this.pageSize ;
  58. //        this.startRow = (this.currentPageNO - 1) * this.pageSize + 1;
  59.         this.endRow = (this.currentPageNO < this.lastPageNO ?
  60.                        this.currentPageNO * this.pageSize : this.totalRows);
  61.     }
  62.     private int validPageNO(int pageno) {
  63.         return (pageno < this.lastPageNO ?
  64.                 (pageno > this.firstPageNO ? pageno :
  65.                  this.firstPageNO) :
  66.                 this.lastPageNO);
  67.     }
  68.     /**
  69.      * 取得最大的整数商.
  70.      * @param dividend int
  71.      * @param divisor int
  72.      * @return int
  73.      */
  74.     private int ceiling(int dividend, int divisor) {
  75.         BigDecimal d = new BigDecimal(dividend);
  76.         BigDecimal q = (d.divide(new BigDecimal(divisor),
  77.                                  BigDecimal.ROUND_CEILING));
  78.         return q.intValue();
  79.     }
  80.     public void setRows(List rows) {
  81.         this.rows = rows;
  82.     }
  83. }