setQuickFilter
按用户输入的搜索条件过滤行。网格还为其他操作启用了rowSelection
。我的目标是从搜索过滤器中排除选定的行,以便它们始终呈现在网格中,无论用户正在搜索什么数据。
我试图仅在未选择的行上有条件地调用
setQuickFilter
,但是setQuickFilter
是网格API上的一种方法并且适用于所有行数据(例如gridApi.setQuickFilter(data)
)
isExternalFilterPresent
和 doesExternalFilterPass
添加我自己的过滤逻辑,但这些似乎只在初始网格渲染上运行,而不是在选定行和/或搜索过滤器更新时动态更新。
当前的网格功能是否可以进行这种类型的过滤?
发布一个有效的解决方案,以防它对遇到这种情况的任何人都有帮助。使用
setQuickFilter()
也带有吸气剂:getQuickFilterText()
。与此 getter 函数一起跟踪 useRef
中的搜索值有助于将搜索值与所选行区分开来。
const getQuickFilterText = (params) => {
if (params.node.isSelected()) {
return searchRef.current;
}
return params.searchValue;
}
然后将 getter 函数传递到列 defs 之一。