layui table 的 page 配置需在 table.render() 的 page 对象中用 limit 字段设正整数(如 limit: 15),limits 仅控制下拉选项;后端必须接收 page 和 limit 参数,按 (page-1)*limit 计算偏移量,响应含总条数 count;改 limit 用 table.reload() 即可,无需重新 render。
layui table 的 page 配置怎么设每页条数
直接在 table.render() 的 page 选项里传对象,用 limit 字段指定数量,不是写在 limits 里就完事——limits 只控制下拉可选值,不决定当前显示多少条。
常见错误是只配了 limits: [10, 20, 50] 却没设 limit: 20,结果默认还是 30 条;或者把数字写成字符串(如 limit: "20"),Layui 内部会当作无效值回退到默认。
-
limit必须是正整数,推荐显式写成limit: 15 -
limits是数组,元素也必须是数字,比如limits: [10, 15, 30, 50] - 如果用户手动切换了分页下拉,
limit值会自动更新并触发重载,无需额外监听
后端接口怎么配合 layui 的分页参数
Layui 发请求时,默认带 page 和 limit 两个字段(例如 ?page=2&limit=15),后端必须按这两个名取值算偏移量,不能硬写成 pageNum 或 pageSize ——否则数据对不上,页面永远只显示第一页。
容易踩的坑是后端框架做了全局参数映射(比如 Spring Boot 用 @RequestParam("pageNum")),但没同步改 Layui 的请求参数名,导致取不到值,返回空列表或全量数据。
- 不改前端时,后端接口必须接收
page(当前页码)和limit(每页数量) - 计算 offset 公式是
(page - 1) * limit,别漏减 1 - 响应体里
count字段必须是总条数(不是当前页条数),否则分页栏算不准页数
动态改每页数量要不要重新 render 表格
不用。调用 table.reload() 就行,把新 limit 塞进 page 配置里即可,Layui 会自动重载并更新分页栏。
有人习惯先 table.destroy() 再重新 render(),这反而会导致事件丢失、DOM 重复、分页状态错乱——reload 是专为这种场景设计的。
- 示例:
table.reload('idTest', { page: { limit: 25 } }); - 如果同时要改条件(比如搜索关键词),把
where也一并传进去,避免漏参数 - 注意:reload 不会重置页码,
page默认保持当前页;如需回到第一页,加curr: 1
移动端小屏下 limit 设太大会有什么问题
不是报错,是体验崩了:一页拉不完,用户得滚很久才能到底部操作按钮;表格列挤在一起,文字换行错乱,甚至触发横向滚动条遮挡操作列。
Layui 没内置响应式 limit 切换,得自己判断屏幕宽度再 reload。别依赖 CSS 隐藏列来“解决”,那只是掩耳盗铃——数据还在,请求量、渲染压力一点没少。
- 建议小屏(
window.innerWidth )时 <code>limit不超过 10 - 可以在
resize事件里做节流判断,但更稳妥的是首次加载时就根据screen.width定初始值 - 如果用了固定列(
fixed: "right"),limit 太大更容易撑破容器,此时更要严控
实际用的时候,limit 看似只是个数字,但它连着前端渲染节奏、后端查询压力、用户手指滑动距离——设之前最好真去手机上拖两下看看。










