首页 > 解决方案 > ag-grid setModel 等效于 selectValue

问题描述

使用 ag-grid 23.2.1,看起来我们当前的过滤方法即将淘汰并列为已弃用。阅读 setModel 文档,我看不出有什么方法可以替换我们的一些 selectValue、selectNothing 等用法。

示例 1:我们清除选择,然后在某些条件下选择几个值,否则我们选择全部

let filterInstance = this.gridOptions.api.getFilterInstance('make');
this.cacheFilterModel = this.gridOptions.api.getFilterModel();
if (condition) {
    filterInstance.selectNothing();
    filterInstance.selectValue('thing1');
    filterInstance.selectValue('thing2');
}
else {
    filterInstance.selectEverything();
}
filterInstance.applyModel();
this.gridOptions.api.onFilterChanged();

示例 2:我们在列中有一些过滤器值,可以通过复选框进行切换,它调用如下所示的方法。如果选中其中一个值,则将其添加到现有过滤器中,如果未选中,则删除该值。可能已经过滤了一些值,我真的看不到使用 setModel 在上下文中选择/取消选择值的方法。

filterExample (make, add) {
    let filterInstance = this.gridOptions.api.getFilterInstance('make');
    if (add) {
        filterInstance.selectValue(make);
    }
    else {
        filterInstance.unselectValue(make);
    }
    filterInstance.applyModel();
    this.gridOptions.api.onFilterChanged();
}

这些有 setModel 等价物吗?

标签: ag-grid

解决方案


我有一个与 setColumnFilter 类似的问题,我必须传递一些值。您可以使用 filterInstance.setModel 通过传递数组来设置这些值,如下所示:

    filterInstance.setModel({ values: ['value1', 'value2'] })
    filterInstance.applyModel();
    gridOptions.api.onFilterChanged()

这是文档中如何执行此操作的链接。我发现这很难在谷歌上找到,所以在这里提供。

https://www.ag-grid.com/javascript-grid-filter-set-api/


推荐阅读