上一篇
想象一下,你作为前端开发者,需要为公司的后台管理系统实现一个用户列表展示功能,后端已经提供了API接口,但如何用Layui快速将数据渲染成漂亮的表格,并且支持分页、搜索呢?别担心,本文将带你一步步搞定!
Layui的表格组件是企业级后台系统的宠儿,因为它:
在HTML头部添加以下代码(CDN加速版):
<link rel="stylesheet" href="https://cdn.layui.com/2.8.3/css/layui.css"> <script src="https://cdn.layui.com/2.8.3/layui.js"></script>
在页面中放置一个<table>
标签,并指定ID:
<table id="userList" lay-filter="userList"></table>
通过JavaScript初始化表格,关键参数解析:
layui.use('table', function(){ var table = layui.table; table.render({ elem: '#userList', url: '/api/user/list', // 后端接口地址 method: 'post', where: { // 额外请求参数 pageSize: 10, currentPage: 1 }, cols: [[ {type: 'checkbox', fixed: 'left'}, {field: 'id', title: 'ID', width: 80, sort: true}, {field: 'username', title: '用户名', minWidth: 120}, {field: 'email', title: '邮箱', minWidth: 180}, {field: 'createTime', title: '注册时间', templet: '<div>{{layui.util.toDateString(d.createTime, "yyyy-MM-dd HH:mm:ss")}}</div>'} ]], page: true, // 开启分页 limit: 10, limits: [10, 20, 30], text: { none: '暂无相关数据' // 空数据提示 } }); });
确保后端返回的数据格式与Layui兼容:
@PostMapping("/api/user/list") public Map<String, Object> listUsers( @RequestParam("page") int page, @RequestParam("limit") int limit) { List<User> data = userService.getPaginatedUsers(page, limit); int total = userService.getTotalCount(); Map<String, Object> res = new HashMap<>(); res.put("code", 0); // Layui规定状态码0表示成功 res.put("msg", ""); res.put("count", total); res.put("data", data); return res; }
在页面顶部添加搜索表单:
<div class="layui-form"> <input type="text" id="username" placeholder="输入用户名搜索" class="layui-input"> button class="layui-btn" onclick="reloadTable()">搜索</button> </div> <script> function reloadTable() { table.reload('userList', { where: { username: document.getElementById('username').value }, page: {curr: 1} // 从第一页开始 }); } </script>
用templet
渲染复杂内容:
{field: 'status', title: '状态', templet: function(d){ return d.status === 1 ? '<span class="layui-badge layui-bg-green">正常</span>' : '<span class="layui-badge">禁用</span>'; }}
结合layer
和laytpl
实现导出:
// 导出按钮点击事件 $('#exportBtn').click(function(){ layer.confirm('确认导出当前数据?', function(index){ window.open('/api/user/export?page='+page+'&limit='+limit); layer.close(index); }); });
如果前后端分离部署,后端需添加CORS支持(Spring Boot示例):
@Configuration public class CorsConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedOrigins("http://前端域名") .allowedMethods("*") .allowCredentials(true); } }
Q1:表格加载时提示"Loading..."但无数据?
A:检查后端返回的code
是否为0,数据字段是否为data
,总条数字段是否为count
。
Q2:分页按钮不显示?
A:确保page: true
且后端返回的count
值正确。
Q3:时间格式化无效?
A:确认已引入layui.util
模块,并在templet
中使用layui.util.toDateString()
。
通过Layui的表格组件,前端开发者可以快速对接后端数据,无需复杂配置即可实现:
赶紧动手试试,让你的后台系统数据展示焕然一新吧! 💪
本文由 业务大全 于2025-08-26发表在【云服务器提供商】,文中图片由(业务大全)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://cloud.7tqx.com/wenda/733150.html
发表评论