layui如何实现数据分页功能

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实现分页功能的思想和步骤,可以为我们开发实际项目时提供一定的帮助。