AngularJS ui-grid:如何对gridMenu中的列进行字母排序?
嘿,刚好我对ag-Grid的这个配置很熟悉!其实你不用自己写复杂的自定义排序逻辑,它本身就有内置属性能轻松搞定这个需求~
内置属性实现默认字母排序
ag-Grid提供了enableColumnPickerSort这个配置项,只要把它设为true,GridMenu里的列就会自动按列名的字母顺序排列了。你只需要把这个属性添加到现有的vm.gridOptions中就行:
vm.gridOptions = { exporterMenuCsv: false, enableGridMenu: true, enableColumnPickerSort: true, // 新增这个属性开启内置字母排序 columnDefs: [ { name: 'name' }, { name: 'gender' }, { name: 'company' } ] };
自定义排序规则(如果需要特殊逻辑)
要是内置的字母排序不符合你的特殊需求(比如想按列的其他属性排序,或者忽略大小写排序),你可以用columnPickerSortComparer这个回调函数来实现自定义排序逻辑。举个忽略大小写排序的例子:
vm.gridOptions = { exporterMenuCsv: false, enableGridMenu: true, columnPickerSortComparer: (colA, colB) => { // 按列名的小写形式比较,实现不区分大小写的字母排序 const nameA = colA.name.toLowerCase(); const nameB = colB.name.toLowerCase(); if (nameA < nameB) return -1; if (nameA > nameB) return 1; return 0; }, columnDefs: [ { name: 'name' }, { name: 'gender' }, { name: 'company' } ] };
内容的提问来源于stack exchange,提问作者deep5459
相关产品推荐
相关产品推荐

