我正在运行Dynamics CRM 2011 RU 18,并且正在更改JavaScript,以便它将与此新版本兼容。

我有一个多选查找,在其中添加了一个事件处理程序,该事件处理程序将保存值的修改。

添加到onLoad事件的代码:

document.getElementById(lookupSchemaName).setAttribute("lookupstyle", "multi");
document.getElementById(lookupSchemaName).setAttribute("_lookupstyle", "multi");

Xrm.Page.getAttribute(lookupSchemaName).addOnChange(function () {Update(...)})

Xrm.Page.getAttribute(lookupSchemaName).setSubmitMode("never");

if (Xrm.Page.ui.getFormType() != CRM_FORM_TYPE_CREATE) {
FillMultiLookup(relationshipSchemaName, lookupSchemaName, relatedEntitySchemaName, relatedEntityPrimaryAttributeSchemaName);
}

else {
    Xrm.Page.getControl(lookupSchemaName).setDisabled(true);
}


奇怪的是,只有在查找选择了一个元素时,它才进入我的onChange处理程序方法。当选择了多个on元素时,它将不会进入我的onChange处理程序

最佳答案

前两行绕过Xrm.Page API,直接操作CRM表单页面的DOM。 Microsoft不支持此功能,并且可能导致不可预测的结果。

在这种特定情况下,您不能简单地更改仅包含一个值并期望其支持多个值的查找字段。由于相应的实体关系无法容纳它,因此它将根本无法工作。

CRM中存在的少数多个查找字段都是内置字段。不幸的是,我们无法添加自定义项。

07-24 18:02