1. 简介
在Web开发中,分页功能是非常常见的功能之一。一些数据量较大,或者需要一定顺序排列的数据都需要使用分页功能进行展示。在使用LayUI框架进行开发时,它内置了非常好用的分页组件。本文将详细讲解如何使用LayUI实现数据分页功能。
2. 引入LayUI
在开始使用LayUI之前,我们需要先引入它。可以通过CDN方式引入:
<link rel="stylesheet" href="//www.layuicdn.com/layui/css/layui.css">
<script src="//www.layuicdn.com/layui/layui.js"></script>
或者下载LayUI的源码,将其放在自己的项目中。
3. 分页组件
3.1 LayPage组件
LayUI提供了LayPage组件来实现分页功能。通过LayPage组件,我们可以方便地实现分页功能。
首先,我们需要在HTML中添加一个用来展示分页器的div:
<div id="page"></div>
然后,在JS文件中,我们可以使用LayPage组件进行分页器的初始化:
layui.use('laypage', function(){
var laypage = layui.laypage;
//执行一个laypage实例
laypage.render({
elem: 'page', //注意,这里的 page 是 ID,不用加 # 号
count: 50, //数据总数,从服务端得到
limit: 10, //每页显示的条数
limits: [10, 20, 30, 40, 50], //每页条数的选择项
curr: 1, //初始化时当前页
layout: ['count', 'prev', 'page', 'next', 'limit', 'refresh', 'skip'], //分页的每个部分的布局,[功能 | 翻页]
//prev: '←', //自定义分页按钮文字
//next: '→', //同上
jump: function(obj, first){
//obj包含了当前分页的所有参数,比如:
console.log(obj.curr); //得到当前页,以便向服务端请求对应页的数据。
console.log(obj.limit); //得到每页显示的条数
//首次不执行
if(!first){
//do something
}
}
});
});
在上面的JS代码中,需要注意以下几点:
在使用LayPage组件前,我们需要使用LayUI的use方法来加载LayPage模块。
LayPage组件需要通过render方法来进行初始化,参数中elem表示要绑定分页器的容器,count表示数据总数,limit表示每页展示的数据条数,curr表示当前页数,limits表示每页显示条数的选择项,layout表示分页的布局。
在jump回调函数中,对象obj包含了当前分页的所有参数。
3.2 使用LayTable组件实现分页
除了使用LayPage组件,我们还可以使用LayTable组件来实现分页。LayTable是一个表格渲染模块,可以方便地渲染数据列表,支持排序、分页以及自定义模板渲染等功能。
我们可以先在HTML中添加一个用来展示表格的div:
<div id="demo"></div>
然后,在JS文件中,我们可以使用LayTable组件进行表格的初始化:
//数据列
var data=[{id:1,name:"小明",age:28},
{id:2,name:"小红",age:22},
{id:3,name:"小花",age:21},
{id:4,name:"小刚",age:22},
{id:5,name:"小明",age:24},
{id:6,name:"小红",age:28},
{id:7,name:"小花",age:29},
{id:8,name:"小刚",age:18},
{id:9,name:"小明",age:22},
{id:10,name:"小红",age:23},
{id:11,name:"小花",age:30},
{id:12,name:"小刚",age:40},
{id:13,name:"小明",age:26},
{id:14,name:"小红",age:23},
{id:15,name:"小花",age:20},
{id:16,name:"小刚",age:25},
{id:17,name:"小明",age:28},
{id:18,name:"小红",age:22},
{id:19,name:"小花",age:19},
{id:20,name:"小刚",age:22},
{id:21,name:"小明",age:24},
{id:22,name:"小红",age:28},
{id:23,name:"小花",age:29},
{id:24,name:"小刚",age:18},
{id:25,name:"小明",age:22},
{id:26,name:"小红",age:23},
{id:27,name:"小花",age:30},
{id:28,name:"小刚",age:40},
{id:29,name:"小明",age:26},
{id:30,name:"小红",age:23},
];
layui.use(['table', 'laypage'], function () {
var table = layui.table,
laypage=layui.laypage;
table.render({
elem: '#demo',
data: data,
id: 'idTest',
page: true,
limits: [5, 10, 15, 20, 25, 30],
limit: 10 //每页默认显示的数量
,
cols: [[
{ field: 'id', title: 'ID', width: "20%", sort: true },
{ field: 'name', title: '姓名', width: "30%" },
{ field: 'age', title: '年龄', width: "20%", sort: true }
]]
});
laypage.render({
elem:'#pageTest1', //注意,这里的 test1 是 ID,不用加 # 号
count:data.length, //数据总数,从服务端得到
limit:10, //每页显示的条数
limits:[5,10,15,20],
curr:1, //起始页
layout: ['count', 'prev', 'page', 'next', 'skip'],//分页的每个部分的布局,[功能 | 翻页]
jump:function(obj,first) {
if(!first){
table.reload('idTest',{
page:{
curr:obj.curr
}
})
}
}
})
});
在上面的JS代码中,需要注意以下几点:
在使用LayTable组件前,我们需要使用LayUI的use方法来加载LayTable模块。
LayTable组件需要通过render方法来进行初始化,参数中elem表示要绑定表格的容器,data表示要渲染的数据,id表示当前的表格id,page表示是否开启分页功能,limits表示每页显示条数的选择项,limit表示每页展示的数据条数,cols表示表格列信息。
在使用LayPage组件对LayTable组件中的表格进行分页时,我们需要通过reload方法来对表格数据进行重新加载。
4. 总结
LayUI内置的LayPage组件和LayTable组件可以方便地实现数据分页功能。使用LayUI开发时,可以根据实际情况选择使用哪个组件进行分页操作。同时,LayUI还提供了许多其他常用的组件和功能,可以让我们更加便捷地进行Web开发。上述的示例代码中,虽然数据是人为模拟的,但是它体现了LayUI实现分页功能的思想和步骤,可以为我们开发实际项目时提供一定的帮助。