AG-Grid(社区版):如何取消sortChanged事件的客户端默认排序?
解决方案
要取消AG Grid默认的客户端排序行为,避免服务端请求返回前的界面闪烁,你可以尝试以下两种方法:
方法一:在事件处理中阻止默认行为
直接在sortChanged事件处理函数里调用event.preventDefault(),阻止grid执行默认的客户端排序操作:
onSortChanged(event) { // 阻止默认客户端排序 event.preventDefault(); const sortState = this.gridApi.getSortModel(); if (sortState.length === 1) { const sortDirection = sortState[0].sort; const sortColumn = sortState[0].colId; this.sortingChanged.emit({ sortDirection, sortColumn }); } }
方法二:通过列定义禁用客户端排序逻辑
给需要排序的列设置自定义比较器,让客户端排序逻辑不生效,同时保持表头的可点击排序触发事件:
// 列定义示例 columnDefs = [ { headerName: '示例列', field: 'exampleField', sortable: true, // 自定义比较器,始终返回0,客户端不会改变排序顺序 comparator: () => 0 } ];
额外提示
如果你使用的是AG Grid的Server Side Row Model(配置rowModelType: 'serverSide'),推荐直接使用grid内置的服务端排序机制:只需要在getRows回调中处理排序参数,grid会自动跳过客户端排序,等待服务端返回处理后的数据,无需手动监听sortChanged事件。
内容的提问来源于stack exchange,提问作者Nico
相关产品推荐
相关产品推荐

