【问题标题】:How to pre-select AG-Grid filter dropdown checkbox values如何预先选择 AG-Grid 过滤器下拉复选框值
【发布时间】:2019-02-28 08:56:26
【问题描述】:

有没有办法为过滤器复选框预先选择一个或多个值?

我目前正在保存最后一个过滤器,因此如果用户过滤,离开页面,然后返回,网格仍会被过滤。我遇到的问题是过滤器下拉复选框不反映过滤的行。

这是我用来设置已保存过滤器的代码:

if ($scope.onFilterChanged) {
 this.gridOptions.onFilterModified = function () {
        $scope.onFilterChanged({filter: ctrl.gridOptions.api.getFilterModel()});
  }
 }

if ($scope.currentFilter && $scope.onFilterChanged) {
    this.gridOptions.api.setFilterModel($scope.currentFilter);
} else {
    this.gridOptions.api.setFilterModel(null);
}

如果我不离开页面并返回,setFilterModel 效果很好。但我不确定为什么它会更新行而不是页面加载时的下拉选项。有没有办法让过滤后的行和复选框在页面加载时匹配?

【问题讨论】:

    标签: javascript angularjs ag-grid


    【解决方案1】:

    是的,可以通过filter API

    你需要先获取过滤器实例

    let filterInstance = this.gridOptions.api.getFilterInstance('columnNameHere');
    

    然后您可以决定过滤器中应该包含什么

    filterInstance.selectNothing();
    filterInstance.selectValue("value one");
    filterInstance.selectValue("value two");
    ...or...
    let model = ["value one", "value two"];
    filterInstance.setModel(model);
    

    最后一步 - 只需通知网格有关更改

    this.gridOptions.api.onFilterChanged();
    

    【讨论】:

    • 谢谢,我收到了这个错误:TypeError: this.gridOptions.api.getFilterInstance is not a function。你知道那个 api 方法可用的版本是什么吗?
    • 另外,为什么 setFilterModel 设置页面加载时的行而不是相应的实际下拉选项?任何想法?如果您不离开页面,它设置都很好
    • html ag-grid 元素上实现 onGridReady(params) 并在内部绑定 this.gridApi = params.api;,并使用 this.gridApi 而不是 this.gridOptions.api
    • onGridReady 似乎对我没有任何作用。我有 ,是否绑定到我的网格组件代码中,因为我需要能够访问 getFilterInstance在那里。
    • 哦,2.3.0 版本 - 是的,它似乎太旧了。
    猜你喜欢
    • 2018-02-06
    • 2020-11-02
    • 2018-12-04
    • 2022-10-13
    • 2016-01-21
    • 2017-03-20
    • 1970-01-01
    • 2012-03-06
    • 2013-02-22
    相关资源
    最近更新 更多