Layui分页栏默认不渲染,page必须显式设为true或完整对象(如page:{layout:['count','prev','page','next','limit','skip']}),否则即使配置url、cols、limits也无效;服务端需返回根级count字段(数字类型),否则需用response.countName或parseData映射。
Layui 表格分页条默认完全不渲染,page 的默认值就是 false。哪怕你配了 url、cols、甚至写了 limits,只要没写 page: true 或等效对象,分页栏就彻底消失。
常见错误写法:page: { limit: 10 } —— 这个对象本身不等于 true,Layui 会直接忽略分页逻辑。
page: true
page: { layout: ['count', 'prev', 'page', 'next', 'limit', 'skip'] }
page: {},效果等同于 false,不会显示任何分页元素初次加载时,Layui 会解析接口返回体,只认顶层的 count 和 data 两个 key。如果后端返回的是 { code: 0, data: { list: [...], total: 200 } },Layui 找不到 count,就会放弃分页渲染,连分页栏都不画。
检查方法:打开浏览器 Network 面板,看响应体里有没有 count,它的值是不是数字(不是字符串 "200")。
total?加配置:response: { countName: 'total' }
parseData 提取:parseData: res => ({ count: res.data.total, data: res.data.list })
parseData 函数里漏掉 count,分页栏照样不出现——Layui 靠它算总页数,缺了就当没分页初次加载时分页栏“存在但看不见”,大概率是 DOM 渲染时机问题:tab 非激活态、layer 内容用 .html() 插入、或容器高度未正确计算,导致 .layui-table-page 被挤出可视区域或高度塌陷。
典型现象:表格内容正常,但底部空空如也;F12 查看发现 .layui-table-page 元素存在但位置异常。
$(".layui-table-box").css("height", "auto") 或调用 table.resize()
content: $("#xxx").html(),改用 content: $("#xxx") 直接传 DOM 节点,避免事件和样式丢失.layui-table-page { position: absolute; bottom: 0; width: 100%; }
分页栏虽然渲染出来了,但点击跳页没反应,或始终只显示第一页数据——本质是请求参数压根没发出去,后端收不到 page 和 limit,只能返回全部数据,Layui 前端截取后也看不出变化。
原因常出现在用了 where 或自定义 contentType 时,Layui 的自动拼参机制被破坏。
?page=1&limit=10 类似参数where 必须是对象,不能是字符串:where: { status: 1 } ✅,where: "status=1" ❌contentType: 'application/json' —— 它会让 page/limit 无法拼到 query string,而 JSON body 又没包含它们