如何识别CRM表格中的标题部分?

时间:2018-07-20 20:00:32

标签: javascript dynamics-crm dynamics-crm-2016

有没有办法确定该部分是否为CRM表格中的标题?

我们使用的是Microsoft Dynamics CRM 2016,我要求在满足特定条件时禁用“联系人”表单上的所有字段。我正在使用下面的代码,到目前为止该代码正在运行。

var attributes = Xrm.Page.data.entity.attributes.get();
for (var i in attributes) {
  var myattribute = Xrm.Page.data.entity.attributes.get(attributes[i].getName());
  var myname = myattribute.getName();
  if (Xrm.Page.getControl(myname) != null) {
    //alert(myname);
    Xrm.Page.getControl(myname).setDisabled(true);
  }
}

不过我问的原因(对于标头字段而言特别如此),您需要在字段名称前放置header_才能获得标头字段。例如header_name。由于我们的CRM管理器喜欢在标题上放置不同的字段,因此最好自动禁用标题字段,而不是手动更改标题字段。

有没有办法确定该部分是否为CRM表格中的标题?

1 个答案:

答案 0 :(得分:3)

基本上,表单中的每个字段都必须位于section之外的header中。因此,在这种情况下这很有用,因为我们必须标识header中的字段并将其禁用。

我已经使用forEach迭代器来检查每个控件,并且如果该控件没有作为section的父级-那么它是header中的一个控件,因此请禁用该控件。

Xrm.Page.ui.controls.forEach(function (control) {
            if(!control.getParent()){
              control.setDisabled(true);
            }
        });

参考:getParent