2017-07-05 92 views
0

我有一個窗體和網格的自定義頁面。當網格中的一行被刪除時,我想更新其他一些行。因此我正在處理rowdeleted事件。我確認(通過調試)事件正確觸發並且數據正在更新。更新數據行刪除事件

我唯一的問題是屏幕仍然顯示舊的值。我的刪除行正確消失,但其他行不會更新。

對於我更改的每一行,我都調用Data View的Update方法。但是,這仍然不會刷新用戶界面。 有趣的是,如果我保存,我的所有更改都會正確更新到數據庫。這證實這是一個UI問題。

是否需要執行其他步驟來刷新用戶界面?或者我應該避免在Row Deleted事件中進行更新?

回答

2

爲了保證恆定的最佳性能水平,在Acumatica的往返網格結束時只更新當前選定的記錄。這種行爲是默認的。如果您在事件處理程序或操作代理的同一網格中插入/更新/刪除其他記錄,則始終需要調用View.RequestRefresh()來強制網格更新其整個內容而不是僅更新所選記錄。

0

我設法通過調用View.RequestRefresh()來解決問題。但是,我不確定這是否是一種標準做法。但我確實發現它在Acumatica代碼中的幾個地方使用

+1

這是標準做法,但正如我在'View.RequestRefresh()'之前所知道的那樣,您也應該調用'View.Clear()'。 –