選択する必要がある行の ID のリストがありますが、選択される実際のオブジェクトはありません。たとえば、ユーザー 16 と 25 を選択する必要があることはわかっていますが、それらを表すインスタンスがありません。これは、まだ読み込んでいないデータの別のページにあることが原因である可能性があります。
データがまだ読み込まれていない場合でも、これらのユーザーをプログラムで選択できるようにしたいと考えています。と呼ばれる関数を実装していますが、うまく機能setSelectedIds()
しています。すべての可視オブジェクトをスキャンし、それらの ID がセット内の ID の 1 つと一致する場合は、それを Selected に設定します。同様に、ユーザーがヒューマン インターフェイスを介して選択を変更した場合、SelectionChangeEvent をキャッチし、ID のバッキング リストに ID を追加するか削除するかを決定します。
実際の質問:
経由でデータがロードされたときに常に発生するイベントはありupdateRowData()
ますか? 私の実装に欠けているのは、新しいデータのロードを処理する方法だけです。新しいデータがロードされたときに通知を受ける必要があるため、それを選択するかどうかを決定できます。RangeChangeEvents はすぐに発生します。これらのハンドラーは、データがロードされる前に起動され、selectionModel.getSelected() はいくつかの null オブジェクトを返します。RowCountChangeEvents は、行の総数が変化した場合にのみ発生します。私は何が欠けていますか?