拿来主义:layPage分页插件的使用

  布衣之谈

  所谓插件,大概就是项目中可插可拔的比较小功能化的组件;这些功能组件若能力可及,自己也可以完成——也即自己造轮子,但翻看各种技术社区,相关领域的神人们往往会有更好的实现方案贡献出来,这个时候你只需要满怀崇敬之心、感激之情,在遵循别人的使用约定的前提下拿过来应用在自己的项目中即可,省却了很多自造车轮的成本。就像苹果造机,虽名苹果,但其零部件全都是世界各地各个功能厂商共同贡献的结果。编程亦是此理,博主入编程的坑稍晚,但也越发的感觉到,在各种功能组件以及技术框架越来越普遍且适用的今天,正是依靠技术互助共享的精神力量,编程才变得越来越简单、快捷的。瞎哔哔了这么多,博主只想说,我虽没有造轮子的能力,但力所能及的,就是尽量将自己的技术积累以博客的形式记录、分享,自己成长为大菜鸟的同时,也期望能帮到更多的小菜鸟——造车轮子咱不会,但告诉别人如何使用,也算是功德一件。

  layPage分页插件使用

  分页是项目中比价常见的功能,所以网上分页插件也很多,功能都大同小异,也都很好用,只是页面风格不同而已,在实际项目中根据自己项目的界面风格选择合适的一款就好。本篇主要介绍前端框架Layui中众多功能组件之一的分页组件——layPage的使用。废话已多说完毕,直接进入正题。页面插件的使用离不开js和css的支持,所以先去官网下载压缩包,解压获取其中的js和css导入自己的前端页面。博主测试的页面因为同时引用了bootstrap的样式,和layui的样式有些冲突,会对插件的渲染效果有些微的影响。我们在使用第三方插件时,肯定先要根据官方文档结合demo去学习,这些样例包含有各种样式可供选择,总有一款适合你——

  结合官方的示例代码,我们就可以根据自己的界面效果来应用插件了。先上简单的前端页面——

 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
 2 <html>
 3 <head>
 4 <title></title>
 5 <link rel="stylesheet" type="text/css" href="${BASE_PATH}/Plugins/layui/css/layui.css">
 6 <link rel="stylesheet" href="${BASE_PATH}/Plugins/bootstrap/css/bootstrap.min.css" type="text/css"></link>
 7 <script type="text/javascript" src="${BASE_PATH}/Plugins/jquery/jquery-1.12.4.min.js"></script>
 8 <script type="text/javascript" src="${BASE_PATH}/Plugins/layui/js/layui.all.js"></script>
 9 <script type="text/javascript" src="${BASE_PATH}/Themes/Default/js/test.js"></script>
10 <style type="text/css">
11     .table th, .table td{
12         text-align : center;
13         vertical-align : middle!improtant;
14     }
15     .container {
16         width : 60%;
17     }
18 </style>
19 </head>
20 <body>
21     <div class="container content">
22         <div class="row">
23             <div>
24                 <div class="panel panel-green margin-bottom-40">
25                     <div class="panel-heading">
26                         <h1 class="panel-title">layPage测试</h1>
27                     </div>
28                     <div class="panel-body">
29                         <div>
30                             <div>
31                                 <table class="table table-bordered table-striped">
32                                     <thead>
33                                         <tr>
34                                             <th>序号</th>
35                                             <th>姓名</th>
36                                             <th>年龄</th>
37                                             <th>操作</th>
38                                         </tr>
39                                     </thead>
40                                     <!-- 表格数据加载 -->
41                                     <tbody id="tab_list">
42                                     </tbody>
43                                 </table>
44                             </div>
45                         </div>
46                     </div>
47                 </div>
48             </div>
49         </div>
50         <!-- 存放分页的容器 -->
51         <div id="layui"></div>
52     </div>
53 </body>
54 </html>

  上面的前端页面很简单,根据官方文档,我们需在合适的位置提供一个存放分页控件的 div 容器。然后是 js 页面——

 1 $(function () {
 2     initLayPage();
 3 });
 4
 5 /**
 6  * 初始化layui分页
 7  */
 8
 9 function initLayPage(pageConf) {
10     if(!pageConf){
11         pageConf ={};
12         pageConf.pageSize = 10;
13         pageConf.currentPage = 1;
14
15     }
16     $.post("/test/query", pageConf, function (data) {
17         layui.use([‘laypage‘, ‘layer‘], function () {
18             var page = layui.laypage;
19             page.render({
20                 elem: ‘layui‘,
21                 count: data.total,
22                 curr: pageConf.currentPage,
23                 limit: pageConf.pageSize,
24                 first:"首页",
25                 last:"尾页",
26                 layout: [‘count‘, ‘prev‘, ‘page‘, ‘next‘, ‘limit‘, ‘skip‘],
27                 jump: function (obj, first) {
28                     if (!first) {
29                         pageConf.currentPage = obj.curr;
30                         pageConf.pageSize = obj.limit;
31                         initLayPage(pageConf);
32                     }
33                 }
34             });
35             fillTable(data.list,(pageConf.currentPage - 1) * pageConf.pageSize); //页面填充
36         })
37     });
38 }
39 //填充表格数据
40 function fillTable(data,num) {
41     var info = ‘‘;
42     $.each(data, function (index, obj) {
43         // id 很多时候并不是连续的,如果为了显示比较连续的记录数,可以这样根据当前页和每页条数动态的计算记录序号
44         index = index +num+1;
45         info += ‘<tr><td>‘ + index + ‘</td><td>‘ + obj.name + ‘</td><td>‘ + obj.age + ‘</td>‘ +
46             ‘<td style="text-align: center;"><button name="btnModify" type="button" class="btn btn-success btn-xs" >修改</button>‘ +
47             ‘<button name="btnDelete" type="button" class="btn btn-danger btn-xs" onclick="remove(‘ + obj.id + ‘)">删除</button></td></tr>‘;
48     });
49     $("#tab_list").html(info);
50 }

  对于上面的 js,咋一看有点懵,但我们看一下官方给出的基础参数选项就比较好理解了——

  上面js 中要重点利用的就是切换分页的回调函数 jump ,该函数在分页或者每页显示条数发生改变时触发,函数返回两个参数:obj(当前分页的所有选项值)、first(是否首次,一般用于初始加载的判断)。当分页发生改变时,可以根据obj获取到改变后的当前页或者每页显示条数,带着这些参数便可以继续发送ajax请求后台获取数据。对于一些溢出情况,layPage已经做了很好的封装,比如,每页显示20条时当前正在最后一页(5),当切换到每页40条的时候,总共只有3页了,那么layPage会自动计算并切换到当前的最后一页第3页,无需我们自己再去判断处理。下面就是博主做好的分页效果—

  一切,就是这么简单,就像初恋般的感觉。。。

原文地址:https://www.cnblogs.com/chenbenbuyi/p/8836420.html

时间: 2024-07-29 18:41:40

拿来主义:layPage分页插件的使用的相关文章

laypage分页插件的使用

laypage是用于分页的插件,该插件通过js请求分页数据 1.载入js文件 <script type="text/javascript" src="__STATIC__/hadmin/lib/laypage/1.2/laypage.js"></script>2.在页面中显示分页信息的地方插入标记<div id="laypage"></div>3.添加js <script type="

LayUI分页,LayUI动态分页,LayUI laypage分页,LayUI laypage刷新当前页

LayUI分页,LayUI动态分页,LayUI laypage分页,LayUI laypage刷新当前页 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ?Copyright 蕃薯耀 2017年8月1日 http://www.cnblogs.com/fanshuyao/ 效果图: 一.引用js依赖

Spring Boot系列教程八: Mybatis使用分页插件PageHelper

一.前言 上篇博客中介绍了spring boot集成mybatis的方法,基于上篇文章这里主要介绍如何使用分页插件PageHelper.在MyBatis中提供了拦截器接口,我们可以使用PageHelp最为一个插件装入到SqlSessionFactory,实现拦截器功能. 二.实现 pom.xml文件中添加依赖包 1 <dependency> 2 <groupId>com.github.pagehelper</groupId> 3 <artifactId>pa

JQueryPagination分页插件,ajax从struts请求数据

2017-07-16 学完了struts,做了个关于分页的小例子,用到了JQuery分页插件Pagination,先贴下插件下载地址 http://www.jq22.com/jquery-info13734 插件作者对于参数讲解的不够详细,琢磨了半天才明白怎么用,不多说,直接代码 1.客户端(jsp页面) 1 /*这些css为了控制生成的数据和分页的li标签的位置*/ 2 a { 3 text-decoration:none; 4 color:black; 5 font-weight: bold

github分页插件的业务逻辑

github分页插件查询的业务逻辑: controller层: query封装前端传来的数据 Service层: 1.构建一个PageBounds:当前页(page).查询多少条(pageSize).排序 2.调用dao的查询方法:查询条件,分页参数对象:返回一个PageList或者List 3.service接收到dao的查询结果(结果集.分页对象paginator) 返回的数据: 根据EsasyUI,必须返回rows 和 total,rows为dao曾返回的结果列表,total为分页对象中的

Spring Boot集成MyBatis与分页插件

Maven依赖: <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>4.1.6</version> </dependency> MybatisConfig.java: import java.util.Properties; import javax.sql.Dat

Mybatis分页插件

Mybatis分页插件 - PageHelper说明 如果你也在用Mybatis,建议尝试该分页插件,这个一定是最方便使用的分页插件. 该插件目前支持Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库分页. 点击提交BUG 版本说明 最新版本为3.7.5 PageInfo中的judgePageBoudary方法修改: isLastPage = pageNum == pages && pageNum != 1; //改为 isLastPage

基于jquery的ajax分页插件(demo+源码)

前几天打开自己的博客园主页,无意间发现自己的园龄竟然有4年之久了.可是看自己的博客列表却是空空如也,其实之前也有写过,但是一直没发布(然而好像并没有什么卵用).刚开始学习编程时就接触到博客园,且在博客园学习了很多的知识,看过很多人的分享.说来也惭愧,自己没能为园友们分享自己的所学所得(毕竟水平比较差). 过去的一年也是辗转了几个城市换了几份工作(注定本命年不太平?).八月份来到现在所在的公司(OTA行业),公司是做互联网的,所以可能大家的前端都屌屌的?之前一直从事.NET开发(现在在这边也是),

wg_pagenation 1.0 自己写的一个分页插件_基于Jquery

前言: 现在这个分页插件也不少,感觉缺点什么,所以自己就写了一个,喜欢的人就拿去用......有bug和建议可以回复,我有空就修改和答复..... 感谢我的基友,刘总...他主要给本插件写配套主题css; 特点: 整合ajax可以异步和后台交互数据,定制化选项多.和Jquery的pagenation比较类似,但是功能更多,选择性更多. 当前版本:1.0 完成日期:20150815 效果图: White.css的效果图: default.css效果图: 上图上向下的箭头表示的是每一个可选择和更改的