当我将OnChange函数注册到某个字段时,如果在服务器端的插件上更新该字段,则会触发它(On Dynamics Crm 2015)
是否可以阻止此行为(以受支持的方式)?
示例代码:
1。客户方:
Xrm.Page.getAttribute("org_myfield").addOnChange(function () { alert("org_myfield was changed") });
2。服务器端:
internal void OnPreUpdateRequest(org_myentity target, org_myentity preImage)
{
target.org_myfield = "some value";
}
第3。结果(保存记录和插件完成运行后):
"org_myfield was changed"
必填结果:不应触发警报。
答案 0 :(得分:3)
我相信这是你想要的:
1.当用户在此字段上进行更改时,请在更改函数上调用JavaScript;
2.保存记录时,插件也可能会更改字段的值;
3.如果插件更改了字段值,请跳过JavaScript函数。
如果这是正确的,我会这样试试:
从字段中删除onChange
事件,而不是检查表单的onSave
事件中的字段状态。
使用Xrm.Page.getAttribute("org_myfield").getIsDirty()
确定用户是否对该字段进行任何更改。它只检查客户端的更改,因此不会受到插件的影响。