【发布时间】:2016-05-03 21:08:55
【问题描述】:
我在商机表单上设置了一个自定义选项,其中一个选项(最后一个)被隐藏了。我有一个功能区按钮,单击该按钮我需要显示并选择该选项。它第一次运行良好,但我的问题是,如果我第二次或第三次单击该按钮等等,它会将该选项的相同文本部分复制/添加到该选项集...Option Set
【问题讨论】:
标签: javascript dynamics-crm microsoft-dynamics dynamics-crm-2016
我在商机表单上设置了一个自定义选项,其中一个选项(最后一个)被隐藏了。我有一个功能区按钮,单击该按钮我需要显示并选择该选项。它第一次运行良好,但我的问题是,如果我第二次或第三次单击该按钮等等,它会将该选项的相同文本部分复制/添加到该选项集...Option Set
【问题讨论】:
标签: javascript dynamics-crm microsoft-dynamics dynamics-crm-2016
您可以避免手动检查选项,只需在调用ctrl.addOption(1234) 之前调用ctrl.removeOption(1234)。
【讨论】:
在将选项添加到选项集之前,您应该检查该选项是否存在。由于不支持检查选项集的当前选项的方法(Xrm.Page.getAttribute(attributeName).getOptions() 为您提供所有可用选项,而不是当前页面上的属性选项)。
因此,最好的办法是使用 Xrm.Page.getControl(attributeName).clearOptions() 清除所有选项,然后重新添加必要的选项。您可以通过 Xrm.Page.getAttribute(attributeName).getOptions(); 进行交互来获取所有可用信息;
【讨论】:
clearOptions 有一个问题不止一次地困扰着我:它在幕后调用fireOnChange。追踪它可能是一个非常困难的问题。因此,如果可能,我倾向于远离clearOptions。
在您删除选项之前(再次添加它而不重复),您应该首先检查要删除的值是否不是当前值 --> 如果实际值是您要删除的值,则更新选项集被触发 - 就像您将字段设置为 null。
【讨论】: