0

我有一个应该选择的行的 id 列表,但没有将选择的实际对象。例如,我知道应该选择用户 16 和 25,但我没有代表它们的实例。这可能是因为它们位于我尚未加载的不同数据页面上。

我希望能够以编程方式选择这些用户,即使他们的数据尚未加载。我正在实现一个名为的函数setSelectedIds(),它运行良好 - 我扫描所有可见对象,如果它们的 id 与我的集合中的一个 id 匹配,我将其设置为 Selected。同样,如果用户通过人机界面更改选择,我会捕获 SelectionChangeEvent 并确定是否应将 id 添加或删除到我的后备 id 列表中。

实际问题:

当通过 加载数据时,是否总是触发一个事件updateRowData()我的实现中唯一缺少的是一种处理新数据加载的方法。加载新数据时需要通知我,因此我可以决定是否选择它。RangeChangeEvents 很快就会发生 - 这些处理程序在数据加载之前被触发,并且 selectionModel.getSelected() 返回一些空对象。RowCountChangeEvents 仅在总行数更改时发生。我错过了什么?

4

1 回答 1

1

你不能实现你自己的SelectionModel吗?当询问是否为 objectisSelected时,它会将其 ID 与您选择的 ID 列表进行比较。您甚至可以通过使用对象的键(由 给出ProvidesKey)而不是硬编码的getId.

于 2011-04-19T08:39:13.343 回答