最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Layui 2.8版本中table.render的initSort参数如何设置
时间:2026-07-24 10:51:53 编辑:袖梨 来源:一聚教程网
initSort是Layui表格强制配置项,必须以{field:'xxx',type:'asc'|'desc'}格式置于render顶层;仅当对应列设sort:true且字段名与后端JSON严格一致时才生效,服务端排序需配合reload及where参数传递。
initSort 必须显式配置,否则表格加载时不会按任何字段排序
initSort 是强制项,不是可选项
很多人以为只要列里写了 sort: true,表格一加载就会自动按该字段排好——这是错的。Layui 表格默认完全不排序,initSort 不写,哪怕你点了十次表头,首次渲染永远是原始顺序。
-
initSort必须是对象,格式为{field: 'xxx', type: 'asc'}或{field: 'xxx', type: 'desc'} - 字段名
field必须和列定义中的field完全一致(大小写、下划线都不能错) -
type只支持'asc'和'desc',不能写'ascending'或1 - 不支持多字段排序,比如
{field: ['name','age'], type: 'asc'}会直接失效
服务端排序时 initSort 要配合 reload 使用
如果你开了 autoSort: false 并监听 sort 事件做服务端排序,initSort 就不只是“初始化用”,它还决定表头图标是否显示箭头状态。漏掉它,用户点完一次再刷新页面,表头就“忘记”刚才按哪列排了。
- 在
table.reload()中必须传入initSort: obj(即事件回调里的obj) - 同时要把排序参数塞进
where:如where: { sortField: obj.field, sortOrder: obj.type } - 后端必须按这两个参数实际排序,否则前端只是“假装在排序”
常见踩坑:initSort 失效的三个原因
明明写了 initSort 却没生效?大概率掉进了下面这三个坑:
- 用了
url加载数据,但后端接口本身已返回预排序结果 —— 这会导致前端排序被掩盖,应确保后端不预排序,或加autoSort: false明确交由后端控制 - 列定义里漏了
sort: true,initSort只对启用了排序的列生效,否则表头连图标都没有,更别说初始排序 - 把
initSort写在了cols里,或者当成列属性写进了某个field配置中 —— 它只属于table.render()的顶层配置项
最常被忽略的一点:initSort 的字段名必须和后端返回的 JSON 字段名严格一致;如果后端返回的是 user_name,但你写成 userName,排序逻辑就彻底断掉了。
相关文章
- 苹果折叠屏爆料汇总:售价超两万,比例阔折叠 07-30
- 纪念碑谷3 纪念碑谷3手游玩法详解与体验评测 07-30
- 晴空双子金卡阵容推荐 晴空双子高性价比氪金养成指南 07-30
- 大周列国志全新派系系统 07-30
- 兔小萌世界甜系小房间搭建指南 兔小萌世界高颜值甜系房间布置全流程详解 07-30
- 大周列国志全新剧本包西汉剧本包 07-30