在 ag-grid 中处理长时间排序(纯 JS)
Posted
技术标签:
【中文标题】在 ag-grid 中处理长时间排序(纯 JS)【英文标题】:Handle long time sorting in ag-grid (pure JS) 【发布时间】:2017-01-29 21:48:55 【问题描述】:我正在处理大量数据(1M - 5M),并且网格中的行应该是可分组、可排序和可过滤的。由于 ag-grid 可以足够快地用数据填充表格,因此我使用内存行模型来满足要求。
但是,当我单击列以按此列对所有行进行排序时,执行此操作需要一些时间。此外,在行仍在排序时连续单击列可能会导致网格和浏览器应用程序崩溃。
是否有任何方法可以阻止用户点击列(禁用排序、显示加载覆盖或类似的东西)?
我正在尝试使用 beforeSortChanged 和 afterSortChanged 事件来显示覆盖或修改 DOM 元素(使网格有点灰色并显示加载圆圈),但它不能正常工作:beforeSortChanged 事件处理程序似乎被卡住了瞬间,然后才被执行。
Ag-grid 在 Ember 框架中作为组件使用。
【问题讨论】:
其实排序好像很快就完成了,但是ag-grid刷新了它的视图,迫使一个网页等待它 【参考方案1】:如何使用onCellClicked,它是columnDefs 的一个属性。应该以与使用 beforeSortChanged 的方式相似的方式工作。
【讨论】:
感谢您的回复。我试过这种方式,但是当我点击列标题时它不会触发事件。 啊对,难怪我不能让它工作,哈哈。在这种情况下,您可以使用headerCellTemplate,然后在其中放置一个 onclick 事件,以便在单击标题时随时触发。我自己用它来自定义一个图标来切换固定。 它可以工作,但仍然是同样的问题:需要先等待排序完成,然后才执行处理程序。以上是关于在 ag-grid 中处理长时间排序(纯 JS)的主要内容,如果未能解决你的问题,请参考以下文章