【问题标题】:Is there a way to SEARCH (not FILTER) to a first match row in AG-GRID?有没有办法搜索(而不是过滤)到 AG-GRID 中的第一个匹配行?
【发布时间】:2021-06-20 08:27:45
【问题描述】:

我想实现一个搜索框,它将网格指针(选定的行)移动到搜索条件的第一个匹配项。我不想过滤网格以仅显示那些匹配项。我希望所有活动行保持活动状态(在搜索时所有记录或任何过滤条件都处于活动状态)。关键是,我只希望搜索结果更改网格中的 ROW SELECTED 并且只更改为第一个匹配项,而不更改过滤条件。 AG-GRID 似乎将 SEARCH 和 FILTER 混合在一起,就好像它们是一回事,而且它们肯定不是一回事。任何人都可以提供任何帮助或指导,我们将不胜感激。

【问题讨论】:

  • "search" 和 "filter" 在这种情况下的区别在于,您复制过滤后的数据,然后使用移动指针的副本。

标签: javascript search ag-grid


【解决方案1】:

您可以通过以下方式实现:

  • 通过api.forEachNode遍历所有网格节点以找到与搜索文本匹配的节点并将它们存储在一个数组中
  • 取数组的第一项并调用node.setSelected(true)来选择节点。您还可以通过调用api.ensureIndexVisibleapi.ensureNodeVisible 滚动到该节点的rowIndexhttps://www.ag-grid.com/javascript-grid/grid-api/#reference-scrolling

请查看实现此功能的示例:https://plnkr.co/edit/1x8NobmsGoHVTVUS

【讨论】:

  • 感谢您的大力指导。您的解决方案的概念对我来说很有意义。我希望网格 api 有更多内置的东西,但我应该能够应用你传授的知识。不幸的是,您链接到的 Plunker 示例并没有完全执行。文本框的作用就像那里的值和网格之间没有绑定一样。我在本地克隆文件并在 VS Code 和本地浏览器实例中打开。结果相同。网格函数,但在文本框中的任何输入中,网格中的状态都没有可见的变化。说了这么多,你给了我很多东西。会继续努力。和平。
  • 没问题 :) 那是因为我已经将 onChange 方法绑定到了输入框,这意味着你每次想要网格搜索文本时都必须按 enter。如果您想根据每次按键进行网格搜索,可以使用其他事件,例如 onkeyup / onkeydown。
猜你喜欢
  • 2016-06-21
  • 1970-01-01
  • 2017-08-20
  • 2021-08-26
  • 1970-01-01
  • 2021-02-21
  • 1970-01-01
  • 1970-01-01
  • 2015-04-22
相关资源
最近更新 更多