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

How to identify Header Section in CRM Form?

有没有办法判断该部分是否是 CRM 表格中的 header?

我们使用的是 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_ 才能到达 header 字段。例如 header_name。由于我们的 CRM 经理喜欢在 header 上放置不同的字段,因此最好自动禁用 header 字段而不是手动更改它。

有没有办法判断该部分是否是 CRM 表格中的 header?

基本上表单中的每个字段都必须在 section 中,除了 header。所以这在这种情况下很有用,因为我们必须识别 header 中的字段并禁用它。

我已经使用 forEach 迭代器来检查每个控件,如果该控件没有一个 section 的父级 - 那么它是 header 中的一个控件,所以禁用控制。

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

参考:getParent