java分页算法,传入当前pageIndex,pageSise,dataTotal可计算出页面上显示的页码,和是否启动上一页下一页
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可计算出页面上显示的页码,和是否启动上一页下一页的更多相关文章
- 一个方便的java分页算法
一个好用的java分页算法,代码如下,只需要分页参数继承Pageable类就可以很方便分页了 package cn.com.base.common.pagination; /** * 分页基类 * * ...
- java分页的实现(后台工具类和前台jsp页面)
1.首先,新建一个类Page.java public class Page implements Serializable { private static final long serialVers ...
- GridView利用PagerTemplate做分页显示设置上一页下一页转到下拉转页
效果如图: 代码如下: aspx页: <asp:GridView ID="GridViewMain" runat="server" OnPageIndex ...
- java分页算法
int totalPageNum = (totalRecord + pageSize - 1) / pageSize;
- css -- 映像 ,分页(上一页下一页)
1.映像:-webkit-box-reflect:blow 2px -webkit-gradient( linear, left top, left bottom, from(transparent) ...
- php实现分页,上一页下一页
首先学东西 要多看手册用php自带的函数 可以解决一些难解的问题 <?php /** * Created by JetBrains PhpStorm. * User: Administr ...
- 【转】SQL Server海量数据库的索引、查询优化及分页算法
探讨如何在有着1000万条数据的MS SQL SERVER数据库中实现快速的数据提取和数据分页.以下代码说明了我们实例中数据库的“红头文件”一表的部分数据结构: CREATE TABLE [dbo]. ...
- django之分页算法实现(Paginator)
导入模块:from django.core.paginator import Paginator 一.Paginator的基本用法: from django.core.paginator import ...
- HTML静态分页(形如:首页,上一页,下一页,尾页)
在HTML中有时候我们会用到静态分页,一次拿回一定量的数据结果条目,我们会以形如:第2页,共12页 首页 上一页 下一页 尾页 的方式进行静态分页,以下是该种静态分页的代码,供兄弟姐妹们参考. &l ...
随机推荐
- 201521123066 《Java程序设计》第十一周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 1.互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) 1.1 除了使用synch ...
- linux防火墙简单的使用
Centos升级到7之后,内置的防火墙已经从iptables变成了firewalld.所以,端口的开启还是要从两种情况来说明的,那就是iptables和firewalld.本文章参考官网教程基础 一. ...
- SpringMVC第二篇【过滤编码器、注解开发、requestMapping、业务方法与传统参数】
SpringMVC过滤编码器 在SpringMVC的控制器中,如果没有对编码进行任何的操作,那么获取到的中文数据是乱码! 即使我们在handle()方法中,使用request对象设置编码也不行!原因也 ...
- Git的使用详解
起步 关于版本控制 Git 简史 Git 基础 安装 Git 初次运行 Git 前的配置 获取帮助 小结 Git 基础 取得项目的 Git 仓库 记录每次更新到仓库 查看提交历史 撤消操作 远程仓库的 ...
- MonoDeveloper 快捷键
注:环境是Unity3D 5.0.2f1自带的MonoDevelop Ctrl+X 剪切功能.另外,光标放在一行的任意位置(不选中任何内容),使用快捷键,将把这一行剪切并删除此行,这个特性非常好用 C ...
- JS中关于数组的内容
前 言 LIUWE 在网站制作过程中,数组可以说是起着举足轻重的地位.今天就给大家介绍一下数组的一些相关内容.例如:如何声明一个数组和在网站制作过程中我们常用的一些数组的方法.介绍的不好还请多多 ...
- php调用webservice接口
项目中使用到了调用三方厂商webService接口.他的接口类似为http://haha.cn:86/BaseInfoService.svc?wsdl,在这里我注意到了"wsdl" ...
- JSP入门 分页
<div> <% Integer pageNo = (Integer) request.getAttribute("pageNo"); ...
- 零复制(zero copy)技术
html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...
- 【POJ】2348 Euclid's Game(扩欧)
Description Two players, Stan and Ollie, play, starting with two natural numbers. Stan, the first pl ...