springboot+layui如何实现表格分页
时间: 2023-08-28 09:08:01 浏览: 47
在 Spring Boot 中使用 Layui 实现表格分页,可以按照以下步骤进行操作:
1. 在前端页面中引入 Layui 的表格组件以及分页组件。
```html
<!-- 引入 layui 的表格组件和分页组件 -->
<link rel="stylesheet" href="//cdn.bootcss.com/layui/2.4.5/css/layui.css">
<script src="//cdn.bootcss.com/layui/2.4.5/layui.js"></script>
<!-- 在页面中定义一个 table 元素 -->
<table id="data-table"></table>
<!-- 在页面底部定义分页条 -->
<div id="page-bar"></div>
```
2. 在 Spring Boot 中编写控制器,获取分页数据。
```java
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/list")
public Page<User> listUsers(int pageNum, int pageSize) {
Pageable pageable = PageRequest.of(pageNum, pageSize);
return userService.findAll(pageable);
}
}
```
在上面的代码中,使用 Pageable 和 PageRequest 类实现分页查询。在实际应用中,需要根据数据库类型选择合适的分页方式。
3. 在前端页面中编写 JavaScript 代码,使用 Ajax 向后端发送分页请求,并根据返回结果更新表格和分页条。
```javascript
// 定义一个全局变量,用于保存当前页码和每页数据条数
var currentPage = 1;
var pageSize = 10;
// 初始化表格和分页条
layui.use(['table', 'laypage'], function() {
var table = layui.table;
var laypage = layui.laypage;
// 渲染表格
table.render({
elem: '#data-table',
height: 'full-100',
url: '/user/list',
cols: [[
{field: 'id', title: 'ID', width: 80},
{field: 'name', title: '姓名', width: 120},
{field: 'age', title: '年龄', width: 80},
{field: 'gender', title: '性别', width: 80}
]],
page: false
});
// 渲染分页条
laypage.render({
elem: '#page-bar',
count: 0,
limit: pageSize,
curr: currentPage,
jump: function(obj, first) {
// 当分页条被点击时,调用该函数
if (!first) {
currentPage = obj.curr;
pageSize = obj.limit;
table.reload('data-table', {
where: {
pageNum: currentPage,
pageSize: pageSize
}
});
}
}
});
});
```
在上面的代码中,定义了一个全局变量 `currentPage` 和 `pageSize`,用于保存当前页码和每页数据条数。初始化表格和分页条时,设置了表格的 `url` 属性为 `/user/list`,表示在加载表格时会向该地址发送分页请求。设置了分页条的 `jump` 回调函数,在点击分页条时调用该函数。在回调函数中,获取当前页码和每页数据条数,并使用 `table.reload` 方法重新加载表格数据。在 `table.reload` 方法中,使用 `where` 参数向后端发送分页请求。
以上就是使用 Spring Boot 和 Layui 实现表格分页的步骤。需要注意的是,在实际应用中,需要根据具体的业务需求和数据量,调整分页参数和分页方式,以提高分页查询的性能。