【博客园cnblogs笔者m-yb原创, 转载请加本文博客链接,笔者github: https://github.com/mayangbo666,公众号aandb7,QQ群927113708】

https://www.cnblogs.com/m-yb/p/9986309.html

分页功能的实现可以使用各种插件, 笔者今日闲来无事, 写了 分页工具类 前后台代码 Java JavaScript 的 实现及思路梳理.

供大家参考.

分页功能的需求一般有: 当前页/每页条数/总页数/总记录数/起始记录数/数据 等.

此工具类还可实现浏览器端修改每页条数的需求.

话不多说, 上代码:

先来后端的Java代码分页工具类

1 packagecom.github.mayangbo666.util;2

3 importjava.util.List;4

5 public class PageHolder{6

7 private int curPage;//当前页

8 private int pageNum;//每页条数

9 private int totalCount;//总记录数

10 private int totalPage;//总页数

11 private int offset;//起始记录数

12 private List data;//数据

13

14 public PageHolder(int curPage, int pageNum, inttotalCount) {15 this.curPage =curPage;16 this.pageNum =pageNum;17 this.totalCount =totalCount;18 init();19 }20

21 private voidinit() {22 processTotalPage();23 processOffset();24 }25

26 private voidprocessTotalPage() {27 this.totalPage = (totalCount % pageNum) == 0 ? totalCount / pageNum : totalCount / pageNum + 1;28 }29

30 private voidprocessOffset() {31 this.offset = (curPage - 1) *pageNum;32 }33

34 public intgetCurPage() {35 returncurPage;36 }37

38 public intgetPageNum() {39 returnpageNum;40 }41

42 public intgetTotalCount() {43 returntotalCount;44 }45

46 public intgetTotalPage() {47 returntotalPage;48 }49

50 public intgetOffset() {51 returnoffset;52 }53

54 public ListgetData() {55 returndata;56 }57

58 public void setData(Listdata) {59 this.data =data;60 }61 }

Java代码使用解释如下:

使用时, 先从数据库统计出带条件的不分页的总记录条数totalCount;

然后创建要返回的 PageHolder(int curPage, int pageNum, int totalCount)对象;

通过该对象获得 offset;

再用offset, pageNum 分页查出条件的List记录;

视情况封装如PageHolder;

再来看看 JavaScript代码:

// author mayangbo666

// 作者 mayangbo666

var curPage = 1

var pageNum = 1 // 每页条数

var totalPage = 1

// 首页

function first() {

curPage = 1

listFlow(curPage)

}

// 尾页

function last() {

curPage = totalPage

listFlow(curPage)

}

// 上一页

function pre() {

if (1 >= curPage){

return false

}

curPage -= 1

listFlow(curPage)

}

// 下一页

function next() {

if (curPage >= totalPage) {

return false

}

curPage += 1

listFlow(curPage)

}

// 当前页 / 总页数

function curPageAndTotalPage(a, b) {

$('#curPage_totalPage').html(a + '/' + b)

}

function getPageNum(pageNumN) {

pageNum = pageNumN

listFlow(curPage)

}

function listFlow(curPage) {

$.ajax({

type: 'post',

dataType: 'json',

url: '/listFlow',

data: {

cardNum: $("#cardDiv").val(),

password: $("#pwd").val(),

curPage: curPage,

pageNum: pageNum

},

success: function (dataResult) {

if (!dataResult.success){

alert(dataResult.message)

return false

}

var flows = dataResult.data.data

totalPage = dataResult.data.totalPage

curPageAndTotalPage(curPage, totalPage)

var msg = '该卡还没有交易数据'

for (var i=0; i< flows.length; i++){

var flow = flows[i]

msg += '

'

msg += '

'+ flow.cardNum +''

msg += '

'+ flow.tradeAmount +''

msg += '

'+ flow.tradeType +''

msg += '

'+ flow.createTime +''

msg += '

'

}

$("#flowListDiv").html(msg)

}

})

}

JavaScript代码这里稍微解释一下:

listFlow函数传入curPage;

发送ajax请求,后端返回AjaxVO对象(ps: 可找笔者的关于ajax前后端代码的文章);

取出各记录;

取出java分页工具类返回的总页数等信息, 通过函数curPageAndTotalPage(curPage, totalPage)写入页面;

for循环解析各记录的各字段, 写入页面;

然后有每页条数的下拉框当下拉框的值变化时, 触发curPageAndTotalPage函数, 将新的值刷入页面;

首页/尾页/上一页/下一页 则:

根据条件对当前页赋值, 重新调用listFlow函数传入curPage, 发送ajax请求去后天查一遍即可.

java ajax翻页_分页 工具类 前后台代码 Java JavaScript (ajax) 实现 讲解相关推荐

  1. java枚举返回字符串_枚举工具类-通过给定值获取对应的枚举类

    开发背景: 在开发过程中遇到需要通过给定的值来获取对应的枚举值,如下例枚举类中,需要通过传入"春"来获取SPRING. public 开始尝试通过Enum的内置方法valueOf( ...

  2. java pinyin4j.jar 下载_Java pinyin4j 工具类实现代码分享

    工具类代码:package com.what21.util.pinyin; import net.sourceforge.pinyin4j.PinyinHelper; import net.sourc ...

  3. java分页的工具类,java分页工具类

    PageBean-分页 package com.soyea.util; import java.io.Serializable; import java.util.List; /** * 分页工具类 ...

  4. Java Web的分页工具类

    最近写一个java web项目,以前分页的工具类,都是基础架构的人写好了的.也没有去细看,现在遇到这个状况. 就整理一下思路,自己写了一个分页的工具类.写的不好之处,还望斧正. 下面是我的代码: Pa ...

  5. java手动分页工具类

    开发中,碰到了一些奇葩的业务逻辑,无法使用框架自身的分页功能,想了很久最后还是决定自己手写一个分页工具类,以备后续参考和使用,下面直接上代码, /*** 手动分页类* @param datas* @p ...

  6. ssm整合oracle分页,java实现ssm分页工具类及其使用方法

    分享一下我现在所使用的分页工具类,不像网上的那么规范 纯属自己总结根据逻辑敲出来的,基于mysql的limit来做分页.有不对的地方还望大佬指出,直接上代码 PageTools package com ...

  7. Springmvc+mybaits 分页处理+ajax翻页

    Springmvc+mybaits (分页处理+ajax翻页) (2)/** * 显示微商城模板 */ @RequestMapping(value="/scmb",method = ...

  8. java 正则 工具类_正则表达式工具类,正则表达式封装,Java正则表达式

    正则表达式工具类 正则表达式封装 Java正则表达式 >>>>>>>>>>>>>>>>>>& ...

  9. PageUtils后端常用分页工具类

    工具类代码 package com.john.test.utils;import java.util.List;/*** @Author jiang* @Version 1.0* 分页工具类*/ pu ...

最新文章

  1. 西游记里河水让人怀孕的秘密:是寄生虫!我往河里放了寄生虫!
  2. 信道编码之差错控制原理
  3. 干货 | 强化学习在携程酒店推荐排序中的应用探索
  4. Hadoop入门实例——WordCount统计单词
  5. k8s:服务发现Service
  6. C# 十六进制字符串与数值类型之间转换
  7. Developer Express 中Gridcontrol获取选中行单元格的值
  8. js 中方便调试 打印日志 -- 将json 和字符串互转
  9. Fluent Design单选按钮,复选框,选择框,Java菜单
  10. Spring boot整合rabbitmq
  11. centos-修改yum下载源为国内阿里源-
  12. sqlMetal用法和例子
  13. 混淆矩阵-python
  14. unity打开一片黑_黑花儿和白花儿——记我家的两只猫星人
  15. 从北大高材生被华为辞退中我们需要学到什么?
  16. jsx就是高级点的HTML拼接,JSX与HTML的那些不同
  17. Oracle移除表空间的数据文件 ora-00604 ora-01426
  18. sql for循环_【赵强老师】什么是PL/SQL?
  19. C typedef用途小结
  20. 如何远程连接软件加密狗

热门文章

  1. Java黑皮书课后题第9章:*9.11(代数:2*2的线性方程)为一个2*2的线性方程设计一个名为LinearEquation的类
  2. Java黑皮书课后题第3章:*3.13(金融应用:计算税款)程序清单3-5给出了计算单身登记人税款的源代码。将程序清单3-5补充完整,从而计算所有登记的婚姻状态的税款
  3. 练习五:整数顺序排列
  4. js去掉字符串中的所有空格
  5. 【网络流】网络流小总结
  6. 【杂谈】数学,计算机视觉,图形图像处理
  7. C# IO操作(五)文件的递归加载
  8. plist 文件的读写
  9. 牛客网(剑指offer) 第十二题 数值的整数次方
  10. webbench源码解析