【问题标题】:Virtual TableViewer sorting causes selection problemsVirtual TableViewer 排序导致选择问题
【发布时间】:2016-03-30 23:54:32
【问题描述】:

我们的应用程序是一个 RCP 应用程序,需要显示包含数千个项目的表格。因此,我们在TableViewer 中使用SWT.VIRTUAL。除了选择之外,这很好用。

我们遇到以下问题:

  • 我们的TableViewer 支持排序和过滤。当我们使用虚拟表格查看器时,更改选择不会保留当前选中的项目,而是保留当前选中的行。这会导致另一个项目被选中。 例如:如果用户选择了第 5 行的项目“A”并执行排序,则在排序后第 5 行的项目将被选中,而不是项目“A”。 使用非虚拟TableViewer,一切正常。

我们尝试进行调试,发现来自AbstractTableViewer.VirtualManager 类的缓存似乎与模型是最新的。 强制在AbstractTableViewer.virtualSetSelectionToWidget() 中使用缓存可能是一种可能的方法。

我们已尝试实施https://bugs.eclipse.org/bugs/show_bug.cgi?id=338696 中建议的解决方案。但是没有用。

请提出一些建议或替代解决方法。

感谢您的回答。

【问题讨论】:

  • 添加与您的需求相关的代码部分将帮助人们回复恰当的答案!

标签: eclipse-plugin swt eclipse-rcp jface tableviewer


【解决方案1】:

作为处理大表的一种解决方法,我建议您查看 Nattable 项目 http://www.eclipse.org/nattable/。它支持您需要的一切(排序、过滤、树结构元素、延迟加载等)。我们在我们的项目中成功使用了它,需要将数十万个元素显示为大约 160 列的树。它还具有一些非常酷的样式功能,可以使您的表格更加用户友好和互动。希望这会有所帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-09
    • 2015-09-12
    • 1970-01-01
    相关资源
    最近更新 更多