我们正在使用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);
}
}
除了某些原因,我无法访问标题上的字段,因此代码可以正常工作。 getControl总是以某种方式为标头字段返回null。页眉上的所有字段均未锁定,但页脚本身默认情况下处于锁定状态,我无法对其进行解锁。
是否可以禁用CRM表单中的标题字段?我是否需要找到一种方法来解锁表单上的标题?我尝试使用以下代码禁用该字段本身,但是没有运气。
Xrm.Page.getControl("mycustomfield").setDisabled(true);
答案 0 :(得分:3)
我必须在字段名称中添加“ header_”以使其起作用
Xrm.Page.getControl("header_mycustomfield").setDisabled(true);
答案 1 :(得分:0)
就像在另一个SO thread中回答的那样,您可以一次性禁用标题中的所有控件,而无需对名称进行硬编码。
要优化您的代码以完全禁用表单控件,请使用以下代码:
Xrm.Page.ui.controls.forEach(function (control) {
if (control.setDisabled) {
control.setDisabled(false);
}
});
答案 2 :(得分:0)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
Target.Copy Target.Offset(, 1) 'copied to B
End If
End Sub
答案 3 :(得分:0)
使用 formContext 你也可以禁用它。
if (formContext.getControl("accountid").getAttribute()!= null)
formContext.getControl("accountid").setDisabled(true);