跟踪Scroll并在EditorTreeGrid中管理大量数据

时间:2010-11-25 19:24:57

标签: gxt

我们需要在两个单独的编辑树网格中加载大约4000条记录,并在使用每棵树中特定列的值进行比较后突出显示每条记录的差异。记录数量有限,一切都很好但是当我们达到4000条或更多记录时,我们就会遇到大量的数据问题。树网格需要大约10分钟才能渲染,因为它包括展开所有节点,计算以构建父子关系,然后突出显示。

我考虑的一个解决方案是尝试使用类似的Live Grid方法,但是对于突出显示逻辑,我们需要所有记录,因为Grid'A'中的第三条记录可能与Grid'B'中的第115条记录相匹配.Live Grid不具备当它带来下一组记录时的先前选择。

考虑到上述情况,实现这一目标的最佳方法是什么?当我向下滚动时,我可以继续向商店添加新记录吗?我认为可以通过跟踪滚动位置而不使用Live Grid来完成,但我不确定如何实现这一点。我甚至不确定这是不是正确的做法。当用户在EditorTreeGrid中到达垂直滚动的末尾时,是否可以为我提供一些示例代码来向商店添加元素,或者建议更好的方法来实现这一点?我的试验以某种方式添加滚动监听器和监听器并没有启动。

此外,Live Grid使用List Store,而我使用EditorTreeGrid。如何有效地将其填充到树存储中?我以前做过getAllModels并将它们填充到TreeStore中。这是正确的方法吗?

1 个答案:

答案 0 :(得分:0)

最后,我们最终倾倒了Tree结构并覆盖了LiveGrid和LiveGridView来实现这一目标。 LiveGrid不会将完整数据加载到UI,而是跟踪滚动并根据需要引入数据。