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