最简初始化需调用 layui.laypage.render(),参数中 elem 必须为不带#的字符串ID或DOM对象,count 须为大于0的数字,jump 回调须用 if(!first) 过滤首次触发,curr 不得超过 Math.ceil(count/limit)。

laypage.render() 怎么正确初始化
laypage 不需要 layui.use() 加载模块,只要页面引入了 layui.js 和 layui.css 就能直接用。最简初始化就是调 layui.laypage.render(),但参数错一个就白搭。
-
elem必须是字符串 ID(不带#)或 DOM 对象,写成'#pagination'会报Cannot read property 'innerHTML' of null -
count必须是数字且 > 0,否则页码栏完全不渲染——哪怕数据都对,count: "100"(字符串)也会失效 -
jump回调里必须用if (!first)过滤首次自动触发,否则第 1 页数据请求两次 - 如果用
curr指定初始页码,要确保它 ≤Math.ceil(count / limit),超了会静默回退到第 1 页
table.render() 为什么分页栏没出来
表格分页栏消失,90% 是后端响应结构不对,不是前端配错了。layui 表格只认一种成功格式:code === 0 且顶层有 count 字段(不能在 data 里嵌套)。
- 常见错误:
count写成total、totalCount或data.total - 后端返回
code: 200或code: "0"(字符串),layui 只认严格等于0的数字 - 调试时在
done回调里console.log(res),确认res.count是数字、非null、非undefined - 如果用了
parseData,返回对象里也必须含count,且不能漏掉data字段
table 同时配了 url 和 data 会怎样
只要 table.render() 里写了 data(哪怕空数组 []),layui 就强制走前端分页,url 彻底被忽略——Network 面板里切换页码没新请求,就是这个原因。
- 服务端分页:删掉所有
data配置项,只留url - 前端分页:删掉
url,用data传完整数组,且必须设page: true - 别混用——
data和url同时存在,等于告诉 layui:“你随便选一个逻辑”,它选的是前端分页 - 检查是否误写了
data: []或data: null,这些都会触发降级
page 参数名怎么匹配后端习惯
layui 默认用 page 和 limit 当分页参数名,但 Spring Boot、ThinkPHP 等框架普遍用 pageNum/pageSize,不显式配置 request,后端永远收不到分页信息。
- 必须写:
request: { pageName: 'pageNum', limitName: 'pageSize' } - 大小写敏感:
pageNum≠pagenum,后端 Controller 参数名要完全一致 - 如果后端用
page_no和per_page,就对应改成pageName: 'page_no', limitName: 'per_page' - 别信“后端能自动适配”——它不会猜,只按你写的 key 去取值
count,最后核对参数名大小写,比重配一遍 render 更快。


















