试图使价格列表形式和价格项形式仅读取并使用以下Java脚本,但是请继续遇到以下错误;此记录的脚本之一导致了错误。有关更多详细信息,请下载日志文件。TypeError:control.getDisabled不是MakefieldsReadonly
的功能使用Dynamics CRM 2016,此JS在表单的负载
上运行function onLoad() {
var formType = Xrm.Page.ui.getFormType();
if (formType == 2)
makeFieldsReadOnly(); }
function makeFieldsReadOnly() {
var controls = Xrm.Page.ui.controls.get();
for (var i in controls) {
var control = controls[i];
if (!control.getDisabled()) {
control.setDisabled(true);
}
} }
关于为什么失败的任何建议,在CRM 2011中正常工作?
并非您要迭代的所有控件都可以禁用,因此代码失败。当它试图在控件上执行getDisabled
时,它会引发错误,该控件没有声明此功能。
可以通过检查控件上是否存在必要的功能来解决这:
function onLoad() {
var formType = Xrm.Page.ui.getFormType();
if (formType == 2)
makeFieldsReadOnly(); }
function makeFieldsReadOnly() {
var controls = Xrm.Page.ui.controls.get();
for (var i in controls) {
var control = controls[i];
if (control.getDisabled && control.setDisabled && !control.getDisabled()) {
control.setDisabled(true);
}
}
}