【问题标题】:agSetColumnFilter was getting error for server side paginationagSetColumnFilter 出现服务器端分页错误
【发布时间】:2019-07-21 04:11:14
【问题描述】:

agSetColumnFilter 在服务器端分页时出现错误 “设置过滤器无法初始化,因为您使用的行模型不包含浏览器中的所有行。要么使用不同的过滤器类型,要么配置设置过滤器,以便你为它提供价值”。

我已经指定了

enableServerSideSorting: true,
enableServerSideFilter: true,
rowModelType: 'infinite' 

并添加了

filter: "agSetColumnFilter". 

但我仍然收到错误消息。

如何克服这个问题(在反应应用程序中)?

【问题讨论】:

  • 这个错误几乎是不言自明的。创建一个 plunker 或 stackblitz 的代码示例

标签: ag-grid


【解决方案1】:

当您使用 rowModelType = "infinite" 时,ag-grid 的设置过滤器不起作用。 如果要使用服务器端分页,则需要设置 rowModelType = "serverSide"。 所以你必须使用简单的列过滤器文本过滤器、数字过滤器或日期过滤器

在列定义中设置过滤值text。 例如

this.state = {
      columnDefs: [{
        field: 'AtheleteName',
        filter: 'text'
      },
      {
        field: 'Age',
        filter: 'number'
      },
      {
        field: 'Date',
        filter: 'date'
      }]
}

参考 - Provided simple filters Server side operations

【讨论】:

    【解决方案2】:

    您可以对服务器端数据使用 set 过滤器,但您必须通过向您的 filterParams see docs 提供 values 函数来实现数据源。

    可以在here找到如何实现这一点的示例

    const gridOptions = {
        columnDefs: [
            {
                filter: 'agSetColumnFilter',
                filterParams: {
                    values: params => {
                        // async update simulated using setTimeout()
                        setTimeout(() => {
                            // fetch values from server
                            const values = getValuesFromServer();
                            // supply values to the set filter
                            params.success(values);
                        }, 3000);
                    }
                }
            }
        ]
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-13
      • 1970-01-01
      • 2019-12-08
      • 1970-01-01
      • 2015-06-19
      • 2016-05-04
      • 1970-01-01
      相关资源
      最近更新 更多