如何使用 ag-grid 跨多列创建 OR 逻辑过滤器

tim*_*ois 5 angularjs vue.js ag-grid

ag-grid 仅提倡使用基于 的过滤列AND,并且它们允许您在单个列本身内执行操作AND/OR,但到目前为止我还没有找到OR跨多个列进行过滤的能力。

例如,如果我想要一个 ( Status1 = 5OR Status1 = 6) OR ( Age > 30) 的过滤器组。

第一组当前可以工作,Status1 等于 5 或​​ 6,但对年龄进行 OR 是问题,这如何实现?如果无需大量额外的自定义配置就可以实现这一点吗?

文档: https: //www.ag-grid.com/javascript-grid-filtering/

过滤示例: https://www.ag-grid.com/example.php#/filtering/1

use*_*515 1

假设您使用自定义过滤器,您可以执行以下操作。我使用另一列“Active”作为示例。

  • 定义另一列时添加 colId:"Active"; //Active 只是一些唯一的字符串
  • 在 doesFilterPass 实现中,您可以使用其他列过滤器处理传入参数。

  doesFilterPass(params: IDoesFilterPassParams): boolean {
        const passesHere ... your filter logic
        // Get the other filter.
        const activeFilterPasses = this.api.getFilterInstance('Active').doesFilterPass(params);
        return passesHere && activeFilterPasses; // Here it does AND filter between two columns. 
    }