AG-Grid:我正在使用带有部分存储的服务器端模型。我想在列上应用多重过滤器(文本过滤器和设置过滤器)。我用下面的代码做到了。
filter: 'agMultiColumnFilter',
filterParams: {
filter: [
{
filter: 'agTextColumnFilter',
filterParams: {
defaultOption: 'startWith'
}
},
{
filter: 'agSetColumnFilter',
filterParams: {
values: this.getFilterList,
refreshValuesOnOpen: true
}
},
]
},
如何传递价值?下面解释。
filterParams: {
values: this.getFilterList,
refreshValuesOnOpen: true
}
this.getFilterList 将通过异步调用获取设置过滤器的值。 但是,当我单击 UI 中的过滤器图标(如下所示)时,会抛出以下错误。
错误:ag-Grid:设置过滤器无法初始化,因为您使用的行模型不包含浏览器中的所有行。使用不同的过滤器类型,或配置设置过滤器,以便您为其提供值
我尝试单独使用 setFilter 代码(只是为了检查我是否做对了)并且它按预期工作但没有使用多重过滤器。有什么我想念的吗?
我们有另一个页面,我们正在使用客户端模型,并且多过滤器按预期工作,没有任何错误。
有人可以帮我解决这个问题吗?
我今天在设置
agMultiColumnFilter
时遇到了同样的问题。原因是 filterParams
属性中的错字;正确的顶级密钥被命名为filters
而不是filter
:
filter: 'agMultiColumnFilter',
filterParams: {
filters: [
{
filter: 'agTextColumnFilter',
filterParams: {
defaultOption: 'startWith'
}
},
{
filter: 'agSetColumnFilter',
filterParams: {
values: this.getFilterList,
refreshValuesOnOpen: true
}
},
]
},
参考官方文档:https://www.ag-grid.com/javascript-data-grid/filter-multi/#multi-filter-parameters