jquery pagination分页的两种实现方式
原文链接:http://blog.csdn.net/qq_37936542/article/details/79457012
此插件是jQuery的ajax分页插件。如果你用到此插件作分页的时候,涉及到的数据量大,可以采用异步加载数据,当数据不多的时候,直接一次性加载,方便简单。
一:下载地址,及方法参数介绍
下载地址:点击打开链接
- 名 描述 参数值
- maxentries 总条目数 必选参数,整数
- items_per_page 每页显示的条目数 可选参数,默认是10
- num_display_entries 连续分页主体部分显示的分页条目数 可选参数,默认是10
- current_page 当前选中的页面 可选参数,默认是0,表示第1页
- num_edge_entries 两侧显示的首尾分页的条目数 可选参数,默认是0
- link_to 分页的链接 字符串,可选参数,默认是"#"
- prev_text “前一页”分页按钮上显示的文字 字符串参数,可选,默认是"Prev"
- next_text “下一页”分页按钮上显示的文字 字符串参数,可选,默认是"Next"
- ellipse_text 省略的页数用什么文字表示 可选字符串参数,默认是"…"
- prev_show_always 是否显示“前一页”分页按钮 布尔型,可选参数,默认为true,即显示“前一页”按钮
- next_show_always 是否显示“下一页”分页按钮 布尔型,可选参数,默认为true,即显示“下一页”按钮
- callback 回调函数 默认无执行效果
二:引入jquery.js、jquery.pagination.js和pagination.css
- <script src="js/jquery.min.js"></script>
- <script src="js/jquery.pagination.js"></script>
- <link href="js/pagination.css" rel="stylesheet" type="text/css" />
三:准备jsp页面元素
- <!-- 显示分页数据 -->
- <div class="list"></div>
- <!-- 显示页码 -->
- <div class="Pagination" id="pagination"></div>
四:实现异步加载
js代码:
- $(function() {
- var pageSize = 5; // 每页显示多少条记录
- var total; // 总共多少记录
- Init(0); // 注意参数,初始页面默认传到后台的参数,第一页是0;
- $(".Pagination").pagination(total, {
- callback : PageCallback,
- prev_text : '上一页',
- next_text : '下一页',
- items_per_page : pageSize,
- num_display_entries : 4, // 连续分页主体部分显示的分页条目数
- num_edge_entries : 1, // 两侧显示的首尾分页的条目数
- });
- //点击上一页、下一页、页码的时候触发的事件
- function PageCallback(index, jq) { // 前一个参数表示当前点击的那个分页的页数索引值,后一个参数表示装载容器。
- Init(index);
- }
- function Init(pageIndex) { // 参数就是点击的那个分页的页数索引值
- $.ajax({
- type : "get",
- url : ROOT + "/map/getPeopleList?rows=" + pageSize + "&page="
- + pageIndex,
- async : false,
- dataType : "json",
- success : function(data) {
- // 赋值total,用于计算
- total = data.total;
- //拼接html(这个部分根据自己的需求去实现)
- var list = data.pList;
- var html = '<div>'
- for (var i = 0; i < list.length; i++) {
- html += "<p>" + list[i].name + "</p>"
- }
- html += '</div>';
- $('.list').html(html)
- },
- error : function() {
- alert("请求超时,请重试!");
- }
- });
- };
- });
后台代码:
pojo对象
- package com.debo.map.pojo;
- public class People {
- private String name;
- private int limit;//用于分页
- private int Offset;//用于分页
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public int getLimit() {
- return limit;
- }
- public void setLimit(int limit) {
- this.limit = limit;
- }
- public int getOffset() {
- return Offset;
- }
- public void setOffset(int offset) {
- Offset = offset;
- }
- }
controller代码
- @RequestMapping(value="/getPeopleList",method = RequestMethod.GET)
- @ResponseBody
- public Map<String,Object> getPeopleList(HttpServletRequest request){
- //创建对象,封装查询条件
- People people = new People();
- //获取每页记录数
- int limit = Integer.parseInt(request.getParameter("rows"));
- people.setLimit(limit);
- //获取当前页数
- int page = Integer.parseInt(request.getParameter("page"));
- people.setOffset(page*limit);
- Map<String, Object> map = new HashMap<String,Object>();
- //查询总记录数
- int total = mapService.countNumb();
- map.put("total", total);
- //查询当前页面需要的数据
- List<People> pList = mapService.getPeopleList(people);
- map.put("pList", pList);
- return map;
- }
mapper配置sql语句
- <select id="countNumb" resultType="int">
- SELECT count(1)
- FROM people
- </select>
- <select id="getPeopleList" resultType="com.debo.map.pojo.People">
- SELECT * FROM people
- LIMIT #{offset},#{limit}
- </select>
五:实现一次性加载
js代码:
- $(function() {
- //默认每一页显示5条数据
- getMsg(5)
- //分页实现函数
- function getMsg(num) {
- $.ajax({
- url : ROOT+'/map/getPeopleList',
- type : 'GET',
- dataType : 'json',
- success : function(data) {
- // 1.计算分页数量
- var showNum = num;
- var dataL = data.length;
- var pageNum = Math.ceil(dataL / showNum);
- $('.Pagination').pagination(pageNum,{
- num_edge_entries : 1,
- num_display_entries : 4,
- prev_text : "<<",
- next_text : ">>",
- callback : function(index) {
- var html = '<div>'
- for (var i = showNum * index; i < showNum
- * index + showNum; i++) {
- if (i < dataL) {
- html += "<p>" + data[i].name + "</p>"
- }
- }
- html += '</div>';
- $('.list').html(html)
- })
- }
- })
- }
- }
- })
后台代码:
pojo对象
- package com.debo.map.pojo;
- public class People {
- private String name;
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- }
controller层代码
- @RequestMapping(value="/getPeopleList",method = RequestMethod.GET)
- @ResponseBody
- public List<People> getPeopleList(HttpServletRequest request){
- List<People> pList = mapService.getPeopleList();
- return pList;
- }
mapper配置sql语句
- <select id="getPeopleList" resultType="com.debo.map.pojo.People">
- SELECT * from people
- </select>
文末福利:
福利一:前端,Java,产品经理,微信小程序,Python等资源合集大放送:https://www.jianshu.com/p/e8197d4d9880
福利二:微信小程序入门与实战全套详细视频教程:https://www.jianshu.com/p/e8197d4d9880
领取方式:
如果需要学习视频,欢迎关注 【编程微刊】微信公众号,回复【领取资源】一键领取以下所有干货资源,获取更多有用技术干货、文档资料。所有文档会持续更新,欢迎关注一起成长!
ok了
jquery pagination分页的两种实现方式的更多相关文章
- jQuery插件主要有两种扩展方式
jQuery插件主要有两种扩展方式: 扩展全局函数方式. 扩展对象方法方式. 扩展全局函数方式 扩展全局函数方式定义的插件,即类级别插件,可以通过jQuery.extend()来进行定义.定义格式为: ...
- [转载]EasyUI Pagination 分页的两种做法
EasyUI 的 datagrid 支持服务器端分页,但是官方的资料比较少,以下总结了两种 datagrid 的服务器端分页机制,可根据情况具体使用. 一:使用 datagrid 默认机制 后台: p ...
- EasyUI Pagination 分页的两种做法
EasyUI 的 datagrid 支持服务器端分页,但是官方的资料比较少,以下总结了两种 datagrid 的服务器端分页机制,可根据情况具体使用. 一:使用 datagrid 默认机制 后台: p ...
- jquery阻止事件的两种实现方式
再阻止事件冒泡的方面,jquery有两种方式: 一种是 return false;另外一种是 e.stopPropagation() html代码 <form id="form1&qu ...
- 使用SQL Server 2005 新的语法ROW_NUMBER()进行分页的两种不同方式的性能比较
相比在SQL Server 2000 中使用的分页方式,在SQL Server 2005中使用新的语法ROW_NUMBER()来分页效率要高出很多,但是很多人在使用ROW_NUMBER()这种分页方式 ...
- bootstrap-paginator分页插件的两种使用方式
分页有两种方式: 1. 前台分页:ajax一次请求获取全部数据,适合少量数据(万条数据以下): $.ajax({ type: "GET", url: "",// ...
- jQuery 实现图片放大两种方式
jQuery 实现图片放大两种方式 一.利用css样式表实现,多用于后台显示 1.这种比较简单,利用dom元素的hover实现样式切换 <style> img{ cursor: point ...
- datagrid的toolbar的两种实现方式
datagrid的toolbar的两种实现方式 1.在html文件中,可以在设置toolbar="#tb",再在div中设置id="tb" <table ...
- 巨蟒python全栈开发数据库前端6:事件onclick的两种绑定方式&&onblur和onfocus事件&&window.onload解释&&小米商城讲解
1.回顾上节内容(JavaScript) 一.JavaScript概述 1.ECMAScript和JavaScript的关系 2.ECMAScript的历史 3.JavaScript是一门前后端都可以 ...
随机推荐
- numpy_basic3
矩陣 矩阵是numpy.matrix类类型的对象,该类继承自numpy.ndarray,任何针对多维数组的操作,对矩阵同样有效,但是作为子类矩阵又结合其自身的特点,做了必要的扩充,比如:乘法计算.求逆 ...
- CISP/CISA 每日一题 四
CISA 每日一题(答) 连续在线审计技术: 1.系统控制审计检查文件和内嵌审计模型(SCARF/EAM):非常复杂,适用于正常处理不能被中断:通过在组织的主机应用系统中内嵌经特别编写的审计软件,使审 ...
- 5.9 enum--支持枚举类型
enum模块提供了枚举类型的支持.枚举类型是由一个名称和一个统一值来组成.值是常量的值.它们之间能够通过名称进行比較和引用,还能够迭代訪问. 5.9.1 模块内容 本模块主要定义了两种枚举类型:Enu ...
- Gmail 收信的一些规则
Gmail 收信的一些规则 用 apache+php+MDaemon 调试 mail2www 时,发往gmail的邮件失败, 提示: Our system detected an illegal at ...
- php数组函数(分类基本数组函数,栈函数,队列)
php数组函数(分类基本数组函数,栈函数,队列函数) 一.总结 1.常用数组函数 函数 描述 array() 创建数组. array_combine() 通过合并两个数组来创建一个新数组. array ...
- Qt Creator 源码学习 03:qtcreator.pro
当我们准备好 Qt Creator 的源代码之后,首先进入到它的目录,来看一下它的源代码目录有什么奥秘. 这里一共有 9 个文件夹和 9 个文件.我们来一一看看它们都是干什么用的. .git: 版本控 ...
- 资源下载https://msdn.itellyou.cn/
资源下载https://msdn.itellyou.cn/ 迅雷
- jmeter与apache测试网站并发
本文主要介绍性能测试中的常用工具jmeter的使用方式,以方便开发人员在自测过程中就能自己动手对系统进行自动压测和模拟用户操作访问请求.最后还用linux下的压测工具ab做了简单对比. 1. ...
- 内存、时间复杂度、CPU/GPU以及运行时间
衡量 CPU 的计算能力: 比如一个 Intel 的 i5-2520M @2.5 Ghz 的处理器, 则其计算能力 2.5 * 4(4核) = 10 GFLOPS FLOP/s,Floating-po ...
- Web网站架构演变—高并发、大数据
转 Web网站架构演变—高并发.大数据 2018年07月25日 17:27:22 gis_morningsun 阅读数:599 前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系 ...