2017-07-05 3 views
0

フォームとグリッドを持つカスタムページがあります。グリッドの行が削除されると、他の行を更新したいと思います。したがって私はrowdeletedイベントを処理しています。イベントが正しく発生し、データが正しく更新されていることを(デバッグによって)確認しました。削除された行のデータを更新する

唯一の問題は、画面に古い値が表示されていることです。削除行は正しく消えますが、他の行は更新されません。

私が変更した行ごとに、私はデータビューのUpdateメソッドを呼び出しています。ただし、これはユーザーインターフェイスを更新しません。面白いことに、保存すると、すべての変更がデータベースに正しく反映されます。これは、これがUI発行であることを確認します。

ユーザーインターフェイスを更新するために実行する必要がある追加の手順はありますか?または、Row Deletedイベントの更新を避けるべきですか?

答えて

2

Acumaticaの往復グリッドの終わりに、現在選択されているレコードのみを更新します。この動作は既定です。イベントハンドラまたはアクションデリゲート内の同じグリッドに他のレコードを挿入/更新/削除する場合は、View.RequestRefresh()を呼び出して、グリッドが選択したレコードだけでなく内容全体を更新するようにする必要があります。

0

View.RequestRefresh()を呼び出して問題を解決することができました。しかし、これが標準的な慣行であるかどうかはわかりません。しかし、私はそれがAcumaticaコードのいくつかの場所で使用されていることを発見しました

+1

これは標準的な方法ですが、 'View.RequestRefresh()'の前に知っているように 'View.Clear()'も呼び出すべきです。 –

関連する問題