我有一个ui-grid,其第一列是:
src=""
其中![alt text](data:image/png;crazy-long-string-of-characters)
是:
columnDefs : [$scope.getGroupIdColumn(),
$scope.getKlasCodeColumn(),
$scope.getKlasNummerColumn(),
$scope.getNaamColumn()
]
其他列定义也是这样的。
如果getGroupIdColumn
为真,我有分组。如果为false,则不进行分组。在此之前,它可以作为例外。
BUT
如果我重新定义该列,甚至所有网格选项,它仍然保持原样。因此,如果我有一个分组的网格,并重新定义所有网格选项,我仍然有网格分组。
应该做什么?
PS:gridApi.core.refresh(),$ evalAsync()..尝试过,没有任何改进。
答案 0 :(得分:2)
我简直不敢相信这么容易!我会编写我的函数,让人们更容易上手:(这里也是documentation)
在$ scope中设置gridApi:
$scope.gridOptions.onRegisterApi = function (gridApi) {
$scope.gridApi = gridApi;
}
保存您的分组信息:
$scope.groupInfo = $scope.gridApi.grouping.getGrouping();
只需定义这些功能
$scope.groupData = function () {
if ($scope.groupInfo != undefined) {
$scope.gridApi.grouping.setGrouping($scope.groupInfo);
}
setTimeout(function () {
$scope.gridApi.treeBase.expandAllRows();
}, 400);
$scope.$evalAsync();
}
$scope.ungroupData = function () {
// if ($scope.groupInfo != undefined) {
// $scope.groupInfo = $scope.gridApi.grouping.getGrouping();
// }
$scope.gridApi.grouping.clearGrouping();
}
答案 1 :(得分:1)
对于我的情况,我需要切换分组,我尝试了你的答案,但它对我不起作用所以我改了一下。
$scope.groupData = function () {
$scope.gridApi.grouping.groupColumn('columnName');
$timeout(function(){
$scope.gridApi.treeBase.expandAllRows();
}, 300);
}