ag-grid:在列值上创建过滤器下拉列表?

Posted

技术标签:

【中文标题】ag-grid:在列值上创建过滤器下拉列表?【英文标题】:ag-grid: Create a filter drop-down on column values? 【发布时间】:2020-01-30 03:10:43 【问题描述】:

我正在尝试将下拉过滤器添加到 ag-grid 中的列。我已经设法使用此代码(在 Angular 8 应用程序中)显示该列:

  columnDefs = [
 headerName: 'Id'              , field: 'id'              , type: 'number' ,
 headerName: 'Message'         , field: 'message'         , type: 'text' ,
 headerName: 'Level'           , field: 'level'           , type: 'text' , width: 90,
  filterParams: 
    filterOptions: [
      'empty',
      
        displayKey: 'errors',
        displayName: 'Errors',
        test: (cellValue)  => cellValue != null && cellValue === 'Error'
      ,
      
        displayKey: 'info',
        displayName: 'Information',
        test: (cellValue) => cellValue != null && cellValue === 'Information'
      ,
      
        displayKey: 'verbose',
        displayName: 'Verbose',
        test: (cellValue) => cellValue == null && cellValue === 'Verbose'
      ,
    ],
    applyButton: true,
    clearButton: true,
    debounceMs: 200,
    suppressAndOrCondition: true
  
,
 headerName: 'Source'          , field: 'source'          , type: 'text' , width: 80   ];

当我单击列上的汉堡菜单时,这给了我一个下拉菜单。但是,当我从上面选择一个选项时,我只会在它下面得到一个文本字段,我必须在其中输入要过滤的文本。我要做的只是选择其中一个选项,例如“错误”,它会自动按该测试功能过滤网格。那可能吗?看起来很简单,但是我花了一整天的时间阅读文档并尝试不同的东西,但似乎没有任何效果......

谢谢!

【问题讨论】:

【参考方案1】:

根据https://www.ag-grid.com/javascript-grid-filter-provided-simple/#customFilterOptions 的文档,“测试”函数有两个参数——过滤器值和单元格值。

您似乎还没有指定过滤器类型。

【讨论】:

谢谢 - 绝对有助于将我推向正确的方向,但是当我查看您引用的页面上的实际示例代码时,我看不到 filterValue 是如何设置的。它只是我要过滤的字符串吗?我确实发现我可以隐藏过滤器的输入,但是当我从下拉列表中选择一个项目时它实际上并没有过滤网格,而且我不确定如何定义过滤器应该是什么......

以上是关于ag-grid:在列值上创建过滤器下拉列表?的主要内容,如果未能解决你的问题,请参考以下文章

在 ag-Grid 中的列标题上添加自定义下拉菜单

如何根据Angular 6同一行中的其他单元格值在AG-Grid选择下拉列表中加载不同的选项?

在 ag-grid 中带有下拉菜单的自定义过滤器在角度 10 中不起作用

如何通过在两个表中映射不同的键并在列值上隐含一些逻辑来创建关联

UltraWebGrid:如何在列中使用下拉列表

在列标题中过滤的 ASP.NET GridView