1. 程式人生 > >Dynamics 365/CRM 保存之後觸發onchange

Dynamics 365/CRM 保存之後觸發onchange

bsp 新頁面 save erro 可能 字段 data 註冊 onchange

有時候一些開發人員可能會遇到這樣的問題而不知道其原因:

在一個字段註冊了onchange事件之後,保存表單,發現onchange 又再次觸發了一遍。

或者,在Ribbon 中使用

Xrm.Page.data.save(saveOptions).then(successCallback, errorCallback)

在successCallback,errorCallback中均沒有調用字段的fireOnchange,然而字段的onchange又被觸發了。

原因是CRM 在刷新頁面數據時,會比較字段保存之前及保存之後的值,如果在保存之前沒有改變字段值,在保存中使用插件修改了字段值,

CRM 在做字段值比較時會發現保存前後不一致,從而觸發字段的onchange事件,保證onchange 事件會被正確執行。

在SDK 有明確的說明:

Field OnChange event



The OnChange event usually occurs when the data in a form field has changed and focus is lost.

This event also occurs when data changes on the server are retrieved to update a field when the form is refreshed, such as after a record is saved.



Dynamics 365/CRM 保存之後觸發onchange