在服务器端更新字段后,防止触发OnChange函数

时间:2017-11-02 16:03:09

标签: javascript c# dynamics-crm dynamics-crm-2015

当我将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"

必填结果:不应触发警报。

1 个答案:

答案 0 :(得分:3)

我相信这是你想要的:
1.当用户在此字段上进行更改时,请在更改函数上调用JavaScript;
2.保存记录时,插件也可能会更改字段的值;
3.如果插件更改了字段值,请跳过JavaScript函数。

如果这是正确的,我会这样试试:
从字段中删除onChange事件,而不是检查表单的onSave事件中的字段状态。
使用Xrm.Page.getAttribute("org_myfield").getIsDirty()确定用户是否对该字段进行任何更改。它只检查客户端的更改,因此不会受到插件的影响。