【发布时间】:2018-04-10 20:02:56
【问题描述】:
我在我的应用程序中几乎所有的表都使用 Nattable。现在有用户报告了关于 Nattable 中的选择的问题。
当我的应用程序加载数据时显示数据,当用户在数据加载后选择一个项目时,它将删除选择。当用户等待几秒钟并再次进行选择时,它会保留。
这是 Nattable 的已知行为吗?对我来说,当第一次选择发生时,数据似乎仍在加载。数据加载为 11K 项,带有多个单元格标签。
【问题讨论】:
我在我的应用程序中几乎所有的表都使用 Nattable。现在有用户报告了关于 Nattable 中的选择的问题。
当我的应用程序加载数据时显示数据,当用户在数据加载后选择一个项目时,它将删除选择。当用户等待几秒钟并再次进行选择时,它会保留。
这是 Nattable 的已知行为吗?对我来说,当第一次选择发生时,数据似乎仍在加载。数据加载为 11K 项,带有多个单元格标签。
【问题讨论】:
不看细节就很难说。实际上我想知道在数据仍然加载时如何渲染某些东西。但我想你有一些有趣的延迟加载机制来使表格可以快速访问。
根据我的经验,您描述的行为是由于StructuralChangeEvent 而发生的。一旦数据完全加载,就会触发这样的事件以相应地更新所有层。结构更改用于完全清除,这也意味着使用默认SelectionModel 时的选择。该模型中的选择按行索引存储。但由于结构更改意味着这可能已被更改,因此删除了选择以避免显示之前未选择的内容。
您可以使用RowSelectionModel 或PreserveSelectionModel 之类的扩展选择模型,或者您仔细检查StructuralChangeEvent 何时被触发以及是否可以处理。但我认为就您的数据加载机制而言,另一种选择模型应该更有趣。
【讨论】: