AG-Grid Angular:在服务器端行模型的列上使用多重过滤器(文本过滤器和设置过滤器),部分存储不起作用

问题描述 投票:0回答:1

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:设置过滤器无法初始化,因为您使用的行模型不包含浏览器中的所有行。使用不同的过滤器类型,或配置设置过滤器,以便您为其提供值

Set Filter Error when used with Multi filter in SSRM

我尝试单独使用 setFilter 代码(只是为了检查我是否做对了)并且它按预期工作但没有使用多重过滤器。有什么我想念的吗?

我们有另一个页面,我们正在使用客户端模型,并且多过滤器按预期工作,没有任何错误。

有人可以帮我解决这个问题吗?

ag-grid ag-grid-angular
1个回答
0
投票

我今天在设置

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

© www.soinside.com 2019 - 2024. All rights reserved.