public class CalculationPage { 

    private Boolean showStartPagerDot;
private Boolean showEndPagerDot;
private int pageIndex;
private int pageSise;
private int totalPages;
private int dataTotal;
private List<Long> pageNumbers;
private int prevPage;
private int nextPage; public CalculationPage(int pageIndex, int pageSise, int dataTotal) { this.pageIndex = pageIndex;
this.pageSise = pageSise;
this.dataTotal = dataTotal; double dDataTotal = (double) this.dataTotal;
double dPageSize = (double) this.pageSise; this.totalPages = (int) Math.ceil((dDataTotal / dPageSize));
this.pageNumbers = new ArrayList<>();
int start = 1;
int pagerCount = 8;
int end = pagerCount;
if (this.pageIndex >= pagerCount) {
start = this.pageIndex - pagerCount / 2;
this.showStartPagerDot = false;
} else { prevPage = this.pageIndex - 1;
if (prevPage <= 0) {
this.showStartPagerDot = false;
} else {
this.showStartPagerDot = true;
}
}
end = start + pagerCount - 1;
if (end > this.totalPages) {
end = this.totalPages;
if (pageIndex == end) {
this.showEndPagerDot = false;
} else {
this.showEndPagerDot = true;
this.nextPage = pageIndex + 1;
} } else {
this.nextPage = end + 1;
if (this.nextPage >= this.totalPages) { this.showEndPagerDot = false;
} else {
this.showEndPagerDot = true;
} }
for (int i = start; i <= end; i++) {
this.pageNumbers.add((long) i);
}
; } public Boolean getShowStartPagerDot() {
return showStartPagerDot;
} public void setShowStartPagerDot(Boolean showStartPagerDot) {
this.showStartPagerDot = showStartPagerDot;
} public Boolean getShowEndPagerDot() {
return showEndPagerDot;
} public void setShowEndPagerDot(Boolean showEndPagerDot) {
this.showEndPagerDot = showEndPagerDot;
} public int getPageIndex() {
return pageIndex;
} public void setPageIndex(int pageIndex) {
this.pageIndex = pageIndex;
} public int getPageSise() {
return pageSise;
} public void setPageSise(int pageSise) {
this.pageSise = pageSise;
} public int getTotalPages() {
return totalPages;
} public void setTotalPages(int totalPages) {
this.totalPages = totalPages;
} public int getDataTotal() {
return dataTotal;
} public void setDataTotal(int dataTotal) {
this.dataTotal = dataTotal;
} public void setPageNumbers(List<Long> pageNumbers) {
this.pageNumbers = pageNumbers;
} public List<Long> getPageNumbers() {
return pageNumbers;
} public int getPrevPage() {
return prevPage;
} public void setPrevPage(int prevPage) {
this.prevPage = prevPage;
} public int getNextPage() {
return nextPage;
} public void setNextPage(int nextPage) {
this.nextPage = nextPage;
}
}

java分页算法,传入当前pageIndex,pageSise,dataTotal可计算出页面上显示的页码,和是否启动上一页下一页的更多相关文章

  1. 一个方便的java分页算法

    一个好用的java分页算法,代码如下,只需要分页参数继承Pageable类就可以很方便分页了 package cn.com.base.common.pagination; /** * 分页基类 * * ...

  2. java分页的实现(后台工具类和前台jsp页面)

    1.首先,新建一个类Page.java public class Page implements Serializable { private static final long serialVers ...

  3. GridView利用PagerTemplate做分页显示设置上一页下一页转到下拉转页

    效果如图: 代码如下: aspx页: <asp:GridView ID="GridViewMain" runat="server" OnPageIndex ...

  4. java分页算法

    int totalPageNum = (totalRecord  +  pageSize  - 1) / pageSize;

  5. css -- 映像 ,分页(上一页下一页)

    1.映像:-webkit-box-reflect:blow 2px -webkit-gradient( linear, left top, left bottom, from(transparent) ...

  6. php实现分页,上一页下一页

    首先学东西  要多看手册用php自带的函数  可以解决一些难解的问题 <?php /**  * Created by JetBrains PhpStorm.  * User: Administr ...

  7. 【转】SQL Server海量数据库的索引、查询优化及分页算法

    探讨如何在有着1000万条数据的MS SQL SERVER数据库中实现快速的数据提取和数据分页.以下代码说明了我们实例中数据库的“红头文件”一表的部分数据结构: CREATE TABLE [dbo]. ...

  8. django之分页算法实现(Paginator)

    导入模块:from django.core.paginator import Paginator 一.Paginator的基本用法: from django.core.paginator import ...

  9. HTML静态分页(形如:首页,上一页,下一页,尾页)

    在HTML中有时候我们会用到静态分页,一次拿回一定量的数据结果条目,我们会以形如:第2页,共12页  首页 上一页 下一页 尾页 的方式进行静态分页,以下是该种静态分页的代码,供兄弟姐妹们参考. &l ...

随机推荐

  1. Java课程设计 学生基本信息管理系统 团队博客

    学生基本信息管理系统团队博客 项目git地址 https://git.oschina.net/Java_goddess/kechengsheji 项目git提交记录截图 项目功能架构图与主要功能流程图 ...

  2. 201521123085 《java程序设计》 第9周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己以前 ...

  3. JAVA课程设计-购物车 (201521123101 柏清晔)

    1.团队课程设计博客链接 /[团队博客链接]http://www.cnblogs.com/yayaya/p/7062197.html 2.个人负责模板或任务说明 1.连接数据库 2.修改购物车的jsp ...

  4. centOS7网络配置(nmcli,bonding,网络组)

    关于网络接口命名 CentOS 6之前,网络接口使用连续号码命名: eth0. eth1等,当增加或删除网卡时,名称可能会发生变化.CentOS 7使用基于硬件,设备拓扑和设置类型命名. 网卡命名机制 ...

  5. 纳税服务系统【统计图Fusionchart】

    需求 我们在投诉模块中还有一个功能没有实现: 统计:根据年度将相应年度的每个月的投诉数进行统计,并以图表的形式展示在页面中:在页面中可以选择查看当前年度及其前4年的投诉数.在页面中可以选择不同的年度, ...

  6. Linux中组 与 用户的管理

    在linux中建立组的指令是 groupadd 组名 相应的,删除组的指令: groupdel 组名 查看自己用户的组: groups 一个用户可以在多个组里面,用这个命令可以将用户添加到组: add ...

  7. 动易CMS - 添加自定义字段

    SELECT TOP 10 * FROM PE_CommonModel C INNER JOIN PE_U_xsjg U ON C.ItemID=U.ID WHERE C.Status=99 ORDE ...

  8. Application->ProcessMessages();

    Application.ProcessMessages的用法意义   在循环中加Application.ProcessMessages是可以防止其他控件没响应,举个例子容易明白:假如你的窗体上有两个按 ...

  9. Go语言备忘录:反射的原理与使用详解

    目录: 预备知识 reflect.Typeof.reflect.ValueOf Value.Type 动态调用 通过反射可以修改原对象 实现类似“泛型”的功能   1.预备知识: Go的变量都是静态类 ...

  10. Python数据可视化利器Matplotlib,绘图入门篇,Pyplot介绍

    Pyplot matplotlib.pyplot是一个命令型函数集合,它可以让我们像使用MATLAB一样使用matplotlib.pyplot中的每一个函数都会对画布图像作出相应的改变,如创建画布.在 ...