2011-12-23 77 views
2

我正在定製我們的CRM解決方案,但今天我遇到了一個問題。我有一個由OnSave事件觸發的JavaScript。此JavaScript更新表單中的字段,並嘗試再次保存。保存由OnSave事件觸發的現場更新

腳本執行時,我可以看到我試圖更新更改的字段,但是當表單重新加載時,該字段仍然具有其舊值。下面我已經提供了一些sudo代碼。有其他人有過這個問題嗎?

的OnSave

//Update field 
Xrm.Page.getAttribute("fieldname").setValue(value); 
//Set submit mode to always 
Xrm.Page.getAttribute.setSubmitMode("always"); 
//Force save 
Xrm.Page.data.entity.save(); 

回答

4

如果您發佈的代碼有沒有複製/粘貼錯誤,我覺得這條線會導致您的問題

Xrm.Page.getAttribute.setSubmitMode("always"); 

這應該是

Xrm.Page.getAttribute("fieldname").setSubmitMode("always"); 
+1

感謝您的回覆@ckeller。我做了這個改變,但我仍然有同樣的問題。我相信我會遇到某種競爭狀態。如果我使用運行onsave的非常短的腳本,則任何更新的字段都將保存並正確顯示在PostRetrieve中。但是當我使用這個更復雜的腳本查詢一些其他實體(因此需要更長的時間)時,PostRetrieve中沒有更新。 – 2012-01-11 20:08:51

+0

我真的想出瞭如何解決這個問題。通過阻止保存事件,然後檢查更新的字段是否髒,我可以在更新值後強制保存。 – 2012-01-11 20:50:46

+0

自己遇到過這個問題,我相信這是由於Async JS發生的?有沒有人知道處理這個問題的更好方法?似乎愚蠢的是必須防止保存,然後重新調用保存在回調,特別是如果它只做一些簡單的更新。 – Ant 2014-10-01 16:05:49

1

我的回答是沒有答案更多的呼救幫助它自我。抱歉。

正如我所說我會檢查設置de submitmode和更改值的順序。看起來你必須首先設置submitmode,然後分配一個值。

現在我的更改已保存。

相關問題