0

選択する必要がある行の ID のリストがありますが、選択される実際のオブジェクトはありません。たとえば、ユーザー 16 と 25 を選択する必要があることはわかっていますが、それらを表すインスタンスがありません。これは、まだ読み込んでいないデータの別のページにあることが原因である可能性があります。

データがまだ読み込まれていない場合でも、これらのユーザーをプログラムで選択できるようにしたいと考えています。と呼ばれる関数を実装していますが、うまく機能setSelectedIds()しています。すべての可視オブジェクトをスキャンし、それらの ID がセット内の ID の 1 つと一致する場合は、それを Selected に設定します。同様に、ユーザーがヒューマン インターフェイスを介して選択を変更した場合、SelectionChangeEvent をキャッチし、ID のバッキング リストに ID を追加するか削除するかを決定します。

実際の質問:

経由でデータがロードされたときに常に発生するイベントはありupdateRowData()ますか? 私の実装に欠けているのは、新しいデータのロードを処理する方法だけです。新しいデータがロードされたときに通知を受ける必要があるため、それを選択するかどうかを決定できます。RangeChangeEvents はすぐに発生します。これらのハンドラーは、データがロードされる前に起動され、selectionModel.getSelected() はいくつかの null オブジェクトを返します。RowCountChangeEvents は、行の総数が変化した場合にのみ発生します。私は何が欠けていますか?

4

1 に答える 1

1

自分で実装することはできませんSelectionModelか?オブジェクトかどうかを尋ねisSelectedられると、そのIDを選択したIDのリストと比較します。ProvidesKeyハードコードされたではなく、オブジェクトのキー(によって与えられる)を使用して一般化することもできますgetId

于 2011-04-19T08:39:13.343 に答える