我在我的一个AngularJs项目中使用https://www.ag-grid.com/。我的要求是在任何分组发生时禁用任何列上的排序。
我知道我们可以使用以下配置在单列上禁用sorting/filtering
:
colDef.suppressMenu = true
colDef.suppressSorting = true <--- this i can set up while giving column definition
在此,我正在按国家/地区对网格进行分组并展开爱尔兰国家/地区,但现在我不禁用任何参数的排序,并在分组属性时再次启用它被删除了。
有没有办法实现这一点,请告诉我,如果已经存在任何重复的问题,请在评论部分添加。
谢谢
答案 0 :(得分:1)
colDef.suppressMenu = true
colDef.suppressSorting = true
http://www.angulargrid.com/angular-grid-column-definitions/index.php
答案 1 :(得分:0)
最后,我解决了问题:),添加了答案,这可能会对其他人有所帮助
注意:我不依赖于Ag-Grid分组我从后端分组数据后得到了所以下面的细节可能会改变 仅取决于Ag-Grids
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
}
注意:默认情况下,所有列都启用了排序,因此我们必须明确禁用它。
这只是我完整代码库的片段,因此跳过了获取标签和其他内容的方式。
希望它可以帮助别人谢谢......
答案 2 :(得分:0)