繁体   English   中英

Dynamics CRM 2016 Javascript修复

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM