最后,我解决了这个问题:),添加答案以便它可以帮助其他人
注意:我不依赖 Ag-Grid 分组,我从后端获取分组数据,因此下面的详细信息可能会因人而异
仅取决于 Ag-Grids
Ag-Grid 提供各种事件监听器,其中之一是columnRowGroupChanged
所以我注册了这个监听器:
vm.gridOptions.api.addEventListener("columnRowGroupChanged", vm.updateRowData);
然后在updateRowData 方法中,我创建了分组后将由Ag-Grid 使用的headerRow,我当时也在配置是否排序:
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
}
注意:默认情况下所有列都启用排序,因此我们必须明确禁用它。
这只是我完整代码库的sn-p,因此跳过了如何获取标签和其他内容。
希望它可以帮助某人谢谢....