[英]Dynamics CRM 2016 Javascript fix
我在Dynamics CRM 2016中遇到以下情况。
我正在尝试创建一个将对下拉字段更改起作用的JS Web资源。
function esitoappuntamento() {
Xrm.Page.getAttribute("new_esito").addOnChange(myOnChange);
function myOnChange() {
if (Xrm.Page.getAttribute("new_esito").getSelectedOption().value == "100000006") {
Xrm.Page.getControl("new_esitoapp").setVisible(false);
Xrm.Page.getAttribute("new_esitoapp").setRequiredLevel("none");
}
else {
Xrm.Page.getControl("new_esitoapp").setVisible(true);
Xrm.Page.getAttribute("new_esitoapp").setRequiredLevel("required");
}
}
}
我有带有选项/选择的选项集字段new_esito
。 我想做的是仅在表单加载且new_esito的值为100000006且有人将值从100000006更改为其余7个选项时才显示new_esitoapp
字段。
否则,如果表单加载时new_esito
值不是100000006,则它不应独立于我在8个可用选项中的new_esito
字段中选择的内容而独立显示new_esitoapp
字段。
这在我需要工作时会部分起作用,因为在表单加载且字段值为100000006的情况下,它可以正常工作。
问题是,即使在表单加载且new_esito
的值不是100000006且我将其更改为其他值时,它仍显示new_esitoapp
字段。
因此,行为应为:
Form load -> new_esito = 100000006 -> change new_esito -> show new_esitoapp
Form load -> new_esito != 100000006 -> change new_esito -> no show new_esitoapp
现在错误的行为是:
Form load -> new_esito != 100000006 -> change new_esito -> show new_esitoapp
我希望我清楚自己想要实现的目标。
期待您的答复。
问候
您应该在表单的OnLoad上执行show \\ hide操作。 此处有更多详细信息:
您的函数myOnChange应该同时在窗体的OnLoad和new_esito属性的OnChange上触发。
另一种选择是利用业务规则:
在上面的代码中,您只是编写一个事件处理程序myOnChange
并使用addOnChange
将其绑定到new_esito
onChange
事件。
当您在表单加载时调用此esitoappuntamento
时,其绑定并准备在下次发生更改时触发。
但是除非您使用fireOnChange
触发它,否则您不会触发它。 所有这些都是动态的动态方式。
绑定它的另一种方法是在表单编辑器中,在字段属性下添加onChange
事件。 它将绑定它以控制并在表单加载本身期间触发它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.