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. 201521123080《Java程序设计》第12周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 流(Stream): Stream是从起源(source)到接收(sink)的有序数据 按照流向分可以分为输入 ...

  2. 杭电acm-2007平方和立方和

    #include<stdio.h>int main(){         int t,m,n,x,y,i;     while(scanf("%d%d",&n, ...

  3. 前端基础之HTML

    一.HTML 段落是通过 <p> 标签进行定义的 如: <p> hello world! </p> <html> 与 </html> 之间的 ...

  4. python只re模块

    while True: phone_number=input('please input your phone number:') if len(phone_number)==11 \ and pho ...

  5. Apache Spark RDD(Resilient Distributed Datasets)论文

    Spark RDD(Resilient Distributed Datasets)论文 概要 1: 介绍 2: Resilient Distributed Datasets(RDDs) 2.1 RDD ...

  6. WebSocket In ASP.NET Core(二)

    WebSocket In ASP.NET Core(二) Server in ASP.NET-Core DI in ASP.NET-Core Routing in ASP.NET-Core Error ...

  7. MVC查询数据接收及校验

    本来想写一篇aspx的TreeView控件绑值的文章的,在写案例的时候,写了一半,发现有些地方还得考虑以下,就留待下次了. 这一篇的话,是最近在开发一个项目的时候,有大量的页面和数据表,需要花式查询, ...

  8. border-radius:50%和100%究竟有什么区别

    之前写css圆形时总是直接设置border-radius为50%.后来看某css动画网站时发现作者都是用的100%.遂去了解了一下2者的差别. border-radius的值是百分比的话,就相当于盒子 ...

  9. 学习率 Learning Rate

    本文从梯度学习算法的角度中看学习率对于学习算法性能的影响,以及介绍如何调整学习率的一般经验和技巧. 在机器学习中,监督式学习(Supervised Learning)通过定义一个模型,并根据训练集上的 ...

  10. SpringBoot文档翻译系列——29.SQL数据源

    原创作品,可以转载,但是请标注出处地址: 因为需要使用到这方面内容,所有对这一部分进行了翻译. 29  使用SQL数据源 SpringBoot为SQL数据源提供了广泛支持,从直接使用JdbcTempl ...