AG-Grid:如何从 setQuickFilter 中排除选定的行?

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

我的 AG-Grid 表利用

setQuickFilter
按用户输入的搜索条件过滤行。网格还为其他操作启用了
rowSelection
。我的目标是从搜索过滤器中排除选定的行,以便它们始终呈现在网格中,无论用户正在搜索什么数据。

我试图仅在未选择的行上有条件地调用

setQuickFilter
,但是
setQuickFilter
是网格API上的一种方法并且适用于所有行数据(例如
gridApi.setQuickFilter(data)

我还尝试使用

isExternalFilterPresent
doesExternalFilterPass
添加我自己的过滤逻辑,但这些似乎只在初始网格渲染上运行,而不是在选定行和/或搜索过滤器更新时动态更新。

当前的网格功能是否可以进行这种类型的过滤?

javascript reactjs filtering ag-grid ag-grid-react
1个回答
0
投票

发布一个有效的解决方案,以防它对遇到这种情况的任何人都有帮助。使用

setQuickFilter()
也带有吸气剂:
getQuickFilterText()
。与此 getter 函数一起跟踪
useRef
中的搜索值有助于将搜索值与所选行区分开来。

const getQuickFilterText = (params) => {
  if (params.node.isSelected()) {
    return searchRef.current;
  }
  return params.searchValue;
}

然后将 getter 函数传递到列 defs 之一。

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