page.limits数组是控制下拉选项的唯一配置,必须为纯数字数组(如[5,10,20,50]),长度≥2时渲染可展开下拉菜单,长度为1时渲染不可交互输入框,空数组[]才真正隐藏下拉框。
改 request.limit 或只设 page.limit,完全不影响下拉框里显示哪些数字。真正起作用的是 page.limits,它必须是纯数字数组,比如 [5, 10, 20, 50]——数组里有几个数,下拉框就显示几个可选项。
常见问题表现:
limits: ["10", "20"](字符串)→ 整个数组被忽略,回退到默认 [10, 20, 30, 40, 50]
limits: null 或直接不写 → 同样 fallback 到默认值limits: [10] → 渲染一个带箭头但点不开的假输入框,视觉上还在,实际不可交互limits: [] → 才真正隐藏下拉框(唯一可靠方式)page.limits 不只是“可选列表”,它直接决定前端 UI 是否渲染可展开下拉:
>= 2:渲染成可点击、可展开的下拉菜单=== 1:渲染为不可展开的输入框(有下拉箭头但无行为)[]:跳过 DOM 渲染,彻底消失null、undefined 或字符串(如 [10, "20"])会让整个数组失效移动端建议控制在 3–4 个选项,比如 [10, 20, 50],太多容易弹层溢出视口,用户点不到。
page.limit 决定首次加载时用多少条、下拉框默认选中哪一项。但它必须出现在 limits 数组中,否则 UI 会悄悄 fallback 到 limits[0],且不报错。
limit: 50,同时确保 50 在 limits 里limits: [10, 20, 50] 却漏掉 limit → 首次仍按默认 30 条加载limit: "50"(字符串)→ 无效,回退到默认 30pageSize 却发 limit)会导致数据为空,但 UI 看不出异常table.reload() 传新 limits 完全无效——DOM 和内部状态不会同步,点击新选项可能发旧值或无响应。
table.destroy('demo')(参数必须是容器的 id 或 lay-id),再用完整新配置 table.render()
cols、url、request 等关键项,表格会变空白destroy 后手动重新绑定destroy + render 替代 reload 来单纯改 limit,那会丢掉当前页码、排序状态等上下文最易被忽略的一点:销毁前没清空容器内非表格 DOM(比如自定义按钮、提示文字),残留节点会干扰样式,导致分页栏错位或高度异常。