【问题标题】:How to disable sorting for a specific columns in Ag-grid?如何禁用 Ag-grid 中特定列的排序?
【发布时间】:2017-10-25 19:15:48
【问题描述】:

我在我的一个 AngularJs 项目中使用https://www.ag-grid.com/。我的要求是在任何分组发生时禁用任何列上的排序。

我知道我们可以使用以下配置在单个列上禁用 sorting/filtering

colDef.suppressMenu = true
colDef.suppressSorting = true <--- this i can set up while giving column definition

但是如何在特定条件下动态执行,更多说明请查看下图

在此,我按 country 对网格进行分组并扩展 Ireland 国家,但现在我不会禁用任何参数的排序并在分组属性时再次启用它被删除。

有没有办法实现这一点,请告诉我,如果已经存在任何重复的问题,请在评论部分添加。

谢谢

【问题讨论】:

    标签: angularjs ag-grid


    【解决方案1】:
    colDef.suppressMenu = true
    colDef.suppressSorting = true
    

    http://www.angulargrid.com/angular-grid-column-definitions/index.php

    示例:http://jsfiddle.net/7ony74h5/1/

    【讨论】:

    • 您是否完整阅读了我的问题描述?我知道如何在给出列定义的同时设置它们。但我的问题不同。 https://jsfiddle.net/7ony74h5/1/ 这个例子不工作
    【解决方案2】:

    最后,我解决了这个问题:),添加答案以便它可以帮助其他人

    注意:我不依赖 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,因此跳过了如何获取标签和其他内容。

    希望它可以帮助某人谢谢....

    【讨论】:

      【解决方案3】:

      现在是抑制排序的属性

      可排序:假

      https://www.ag-grid.com/javascript-grid-sorting/

      【讨论】:

        猜你喜欢
        • 2019-01-18
        • 1970-01-01
        • 2020-07-18
        • 1970-01-01
        • 1970-01-01
        • 2019-04-16
        • 1970-01-01
        • 2016-04-11
        • 2021-11-18
        相关资源
        最近更新 更多