首页 > 其他 > 详细

标记页数、页码的实体类(分页实体类)

时间:2017-09-04 15:47:25      阅读:284      评论:0      收藏:0      [点我收藏+]

/**
 * 标记页数、页码的实体类(分页实体类)
 */
public class PaginationData{

    private int recordCount;             // 数据条数总数
    private int pageCount;                 // 页面总数
    private int index = 1;                 // 当前页
    private int pageSize = 10;             // 每页显示多少条数据
    private int displayNum = 10;         // 显示多少个页码
    private int[] pageNums;             // 记录数组的页码
    private boolean frontEllipsis;         // 前省略号
    private boolean afterEllipsis;         // 后省略号

    // get,set方法
    public int getRecordCount() {
        return recordCount;
    }

    public void setRecordCount(int recordCount) {
        this.recordCount = recordCount;
    }

    public int getPageCount() {
        return pageCount;
    }

    public void setPageCount(int pageCount) {
        this.pageCount = pageCount;
    }

    public int getIndex() {
        if(index <= 0){
            return 1;
        } else {
            return index <= 0 ? 1 : index;
        }
    }

    public void setIndex(int index) {
        this.index = index;
    }

    public int getPageSize() {
        return pageSize;
    }

    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }

    public int getDisplayNum() {
        return displayNum;
    }

    public void setDisplayNum(int displayNum) {
        this.displayNum = displayNum;
    }

    public int[] getPageNums() {
        return pageNums;
    }

    public void setPageNums(int[] pageNums) {
        this.pageNums = pageNums;
    }

    public boolean isFrontEllipsis() {
        return frontEllipsis;
    }

    public void setFrontEllipsis(boolean frontEllipsis) {
        this.frontEllipsis = frontEllipsis;
    }

    public boolean isAfterEllipsis() {
        return afterEllipsis;
    }

    public void setAfterEllipsis(boolean afterEllipsis) {
        this.afterEllipsis = afterEllipsis;
    }

    /**
     * 用来综合生成页面信息的方法
     */
    public void setPageInfo() {
        /*
         * 在这个方法里,我们要确定页码数组,并且确定是否右前后省略号
         */

        // 计算总页数
        pageCount = (recordCount + (pageSize - 1)) / pageSize;
        // 前后都没有省略号,总页数不大于要显示的页数
        if (pageCount <= displayNum) {
            this.frontEllipsis = false;// 没有前省略号
            this.afterEllipsis = false;// 没有后省略号
            this.pageNums = new int[pageCount];// 初始化数组,制定数组的长度
            for (int i = 0; i < this.pageNums.length; i++) {// 给数组的每一个元素赋值
                this.pageNums[i] = i + 1;
            }
            // 总页数大于要显示的页数,前后都有省略号
        } else if ((index - (displayNum / 2) >= 1)
                && (index + (displayNum / 2) + 1 <= pageCount)) {
            this.frontEllipsis = true;// 有前省略号
            this.afterEllipsis = true;// 有后省略号
            this.pageNums = new int[displayNum];// 初始化数组,制定数组的长度
            for (int i = 0, j = index - (displayNum / 2 - 1); i < this.pageNums.length; i++, j++) {// 给数组的每一个元素赋值
                this.pageNums[i] = j;
            }
            // 总页数大于要显示的页数,后有省略号,前没有省略号
        } else if (index - (displayNum / 2) < 1) {
            this.frontEllipsis = false;// 无前省略号
            this.afterEllipsis = true;// 有后省略号
            this.pageNums = new int[displayNum];// 初始化数组,制定数组的长度
            for (int i = 0; i < this.pageNums.length; i++) {// 给数组的每一个元素赋值
                this.pageNums[i] = i + 1;
            }
            // 总页数大于要显示的页数,有前省略号,无后省略号
        } else if (index + (displayNum / 2) + 1 > pageCount) {
            this.frontEllipsis = true;// 有前省略号
            this.afterEllipsis = false;// 无后省略号
            this.pageNums = new int[displayNum];// 初始化数组,制定数组的长度
            for (int i = 0; i < this.pageNums.length; i++) {// 给数组的每一个元素赋值
                this.pageNums[i] = (pageCount - displayNum + 1) + i;
            }
        }
    }
}

标记页数、页码的实体类(分页实体类)

原文:http://www.cnblogs.com/lm9527/p/7473807.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!