如何禁用 Ag-grid 中特定列的排序?
How to disable sorting for a specific columns in Ag-grid?
我在 AngularJs projects.My 要求之一中使用 https://www.ag-grid.com/ 是在进行任何分组时禁用对任何列的排序。
我知道我们可以使用以下配置在单列上禁用 sorting/filtering
:
colDef.suppressMenu = true
colDef.suppressSorting = true <--- this i can set up while giving column definition
但如何在特定条件下动态执行,有关更多说明,请查看下图
在此,我按 国家 对网格进行分组并扩展 爱尔兰 国家,但现在我不禁用任何排序参数并在删除分组属性时再次启用它。
有没有办法实现这个,请告诉我,如果已经存在任何重复的问题,请在评论部分添加。
谢谢
colDef.suppressMenu = true
colDef.suppressSorting = true
http://www.angulargrid.com/angular-grid-column-definitions/index.php
最后,我解决了这个问题:),添加答案,这样可能会对其他人有所帮助
Note: I am not relying on Ag-Grid grouping I am getting after grouped data from my backend so below details can change for guys
depending on Ag-Grids only
Ag-Grid 提供了多种事件监听器,其中之一是columnRowGroupChanged
所以我注册了这个监听器:
vm.gridOptions.api.addEventListener("columnRowGroupChanged", vm.updateRowData);
然后在 updateRowData
方法中我正在创建我的 headerRow 分组后将由 Ag-Grid 使用,我当时也在配置是否排序:
vm.updateRowData = function (groupedColumnInfo) {
/\
||
||
Column Information on which grouping has been done
............
............
// Some Processing to get required details and finally setting the header again
............
............
vm.headerData = {
headerName: groupingAttributeItem.label,
field: fieldName,
width: 150,
headerClass: 'groupable-header',
cellClass: 'groupable-cell p-xs',
key: groupingAttributeItem.key,
sort: (params.sortingInfo && params.sortingInfo.colId === groupingAttributeItem.key) ? params.sortingInfo.sort : '',
suppressSorting: groupedColId ? true : false <--- deciding factor
};
// *Deciding factor* line checks that if some grouping has been done
// if NO then don't suppress sort for that column otherwise enable sorting
}
注意: 默认情况下,所有列都启用排序,因此我们必须明确禁用它。
这只是我完整代码库的片段,因此跳过了如何获取标签和其他内容。
希望对大家有所帮助谢谢....
抑制排序的 属性 现在是
sortable: false
我在 AngularJs projects.My 要求之一中使用 https://www.ag-grid.com/ 是在进行任何分组时禁用对任何列的排序。
我知道我们可以使用以下配置在单列上禁用 sorting/filtering
:
colDef.suppressMenu = true
colDef.suppressSorting = true <--- this i can set up while giving column definition
但如何在特定条件下动态执行,有关更多说明,请查看下图
在此,我按 国家 对网格进行分组并扩展 爱尔兰 国家,但现在我不禁用任何排序参数并在删除分组属性时再次启用它。
有没有办法实现这个,请告诉我,如果已经存在任何重复的问题,请在评论部分添加。
谢谢
colDef.suppressMenu = true
colDef.suppressSorting = true
http://www.angulargrid.com/angular-grid-column-definitions/index.php
最后,我解决了这个问题:),添加答案,这样可能会对其他人有所帮助
Note: I am not relying on Ag-Grid grouping I am getting after grouped data from my backend so below details can change for guys depending on Ag-Grids only
Ag-Grid 提供了多种事件监听器,其中之一是columnRowGroupChanged
所以我注册了这个监听器:
vm.gridOptions.api.addEventListener("columnRowGroupChanged", vm.updateRowData);
然后在 updateRowData
方法中我正在创建我的 headerRow 分组后将由 Ag-Grid 使用,我当时也在配置是否排序:
vm.updateRowData = function (groupedColumnInfo) {
/\
||
||
Column Information on which grouping has been done
............
............
// Some Processing to get required details and finally setting the header again
............
............
vm.headerData = {
headerName: groupingAttributeItem.label,
field: fieldName,
width: 150,
headerClass: 'groupable-header',
cellClass: 'groupable-cell p-xs',
key: groupingAttributeItem.key,
sort: (params.sortingInfo && params.sortingInfo.colId === groupingAttributeItem.key) ? params.sortingInfo.sort : '',
suppressSorting: groupedColId ? true : false <--- deciding factor
};
// *Deciding factor* line checks that if some grouping has been done
// if NO then don't suppress sort for that column otherwise enable sorting
}
注意: 默认情况下,所有列都启用排序,因此我们必须明确禁用它。
这只是我完整代码库的片段,因此跳过了如何获取标签和其他内容。
希望对大家有所帮助谢谢....
抑制排序的 属性 现在是
sortable: false