ag-grid - 如何在 ag-grid 中预设列过滤器

标签 ag-grid ag-grid-ng2

我有一个 Ionic/Angular应用程序使用 ag-grid .我希望某些网格在加载网格时自动应用过滤器 - 用户无需执行任何操作。

我尝试了以下方法:

onGridReady(params) {
  params.api.sizeColumnsToFit();
  // get filter instance
  var filterComponent = params.api.getFilterInstance("isActive");
  // OR set filter model and update
  filterComponent.setModel({
    type: "greaterThan",
    filter: 0
  });
  filterComponent.onFilterChanged();
}

但它什么也没做。有任何想法吗?

最佳答案

编辑:AgGrid 在 24.0 版中包含一个 onFirstDataRendered 回调,如后面的评论中所述。下面的原始答案现在仅与此功能之前的版本相关。

onFirstDataRendered(params) {
    var filterComponent = params.api.getFilterInstance("isActive");

    filterComponent.setModel({
        type: "greaterThan",
        filter: 0
    });

    filterComponent.onFilterChanged();
}
在他们的几个旧版示例中重现了您的问题,似乎通过添加一个小的延迟来缓解。只是冒险猜测也许 DOM 还没有完全准备好,尽管网格已经准备好了。
Pre-onFirstDataRendered 版本:
onGridReady(params) {
params.api.sizeColumnsToFit();

setTimeout(() => {
    var filterComponent = params.api.getFilterInstance("isActive");
    filterComponent.setModel({
      type: "greaterThan",
      filter: 0
    });
    filterComponent.onFilterChanged();
    },150)
}

关于ag-grid - 如何在 ag-grid 中预设列过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49449162/

相关文章:

javascript - 如何禁用 ag-grid 中的单元格选择?

Ag-Grid:将列的位置锁定到最后一列

angular - ag-grid 中的自定义页面大小

ag-grid - 使用 AG Grid,在单击单元格时防止行单击事件?

angular - 在两个单独的 ag-Grid 上使用 ag-Grid 的 sizeColumnsToFit() 时出现警告 'grid zero width',由选项卡菜单显示

angular - ag-Grid 标题样式不随组件上的 CSS 变化

javascript - AG-GRID 单元格在第二次编辑后仅显示错误边框和工具提示

html - ag-grid 在单元渲染器之上渲染

javascript - 如何使用 Angular 将列标题包装在 ag-grid 中

vue.js - 如何在 Ag Grid 中隐藏列?