を使用DataGrid
して、TextInputCell
列を持つ がありますListDataProvider
。セルの値が変更されると、編集中の行の元のエンティティを作成しRequestContext
て呼び出します。RequestContext#edit
次に、変更可能なバージョンのプロキシのフィールドを、編集したセルの値に設定します。これはすべてうまく機能し、変更をデータベースに正常に保存できます。ただし、サーバーでは、変更を保存する前に値を変更し、変更されたエンティティ (DTO) をクライアントに送り返します。メソッドではReceiver#onSuccess
、新しいエンティティをリスト データ プロバイダーに格納してから、 を呼び出しますListDataProvider#refresh
。ただし、 に表示される値はDataGrid
変更されず、サーバーでの変更が反映されません。に提供される値を見てきましたTextInputCell#getValue
つまり、サーバーに適用された変更を含む値です。
グリッドに別の列を作成しようとしましたが、そのセルTextCell
に同じ値を指定しました。getValue
この場合、表示された値は更新によって正しく更新され、サーバーから返された変更された値が反映されます。
だから、私の質問は次のとおりです。セルはどこでその値を取得しますか? メソッドによって返された値を見るTextInputCell#getValue
と、正しい値のように見えますが、その値は画面に表示されていません (画面に表示されている値は、要求を送信する前にプロキシ オブジェクトにあった値です)。サーバー)。
注: この質問を見ましたが、私の状況ではうまくいきませんでした。