我有一个应该选择的行的 id 列表,但没有将选择的实际对象。例如,我知道应该选择用户 16 和 25,但我没有代表它们的实例。这可能是因为它们位于我尚未加载的不同数据页面上。
我希望能够以编程方式选择这些用户,即使他们的数据尚未加载。我正在实现一个名为的函数setSelectedIds()
,它运行良好 - 我扫描所有可见对象,如果它们的 id 与我的集合中的一个 id 匹配,我将其设置为 Selected。同样,如果用户通过人机界面更改选择,我会捕获 SelectionChangeEvent 并确定是否应将 id 添加或删除到我的后备 id 列表中。
实际问题:
当通过 加载数据时,是否总是触发一个事件updateRowData()
?我的实现中唯一缺少的是一种处理新数据加载的方法。加载新数据时需要通知我,因此我可以决定是否选择它。RangeChangeEvents 很快就会发生 - 这些处理程序在数据加载之前被触发,并且 selectionModel.getSelected() 返回一些空对象。RowCountChangeEvents 仅在总行数更改时发生。我错过了什么?