javascript - 为 Crm 表单中的一个部分的所有字段设置禁用

标签 javascript dynamics-crm-2011 dynamics-crm dynamics-crm-2013 disabled-input

如果其他字段的值为真,我需要禁用一个部分,通常我会这样做:

function disableSection1(disabledStatus){
    Xrm.Page.getControl("section1field1").setDisabled(disabledStatus);
    Xrm.Page.getControl("section1field2").setDisabled(disabledStatus);
    Xrm.Page.getControl("section1field3").setDisabled(disabledStatus);
    Xrm.Page.getControl("section1field4").setDisabled(disabledStatus);
}

但我必须为很多部分执行此操作,所以我正在寻找这样的函数:

function sectionSetDisabled(tabNumber, sectionNumber, disabledStatus){
    //some code..
}

最佳答案

我看到的大多数答案都使用了 sectionLable 并进行了以下比较: controlIHave.getParent().getLabel()=="该部分的名称

但经过一些试验后,我发现我可以使用 Xrm.Page.ui.tabs.get(tabNumber).sections.get(sectionNumber).controls.get() 来获取部分。这让我可以使用以下功能:

function sectionSetDisabled(tabNumber, sectionNumber, disablestatus) {
    var section = Xrm.Page.ui.tabs.get(tabNumber).sections.get(sectionNumber);
    var controls = section.controls.get();
    var controlsLenght = controls.length;

    for (var i = 0; i < controlsLenght; i++) {
        controls[i].setDisabled(disablestatus)
    }
}

通过使用 controls[i].getAttribute() 然后您可以获得一个部分的属性。

我最终创建了一个允许我禁用和清除部分中所有字段的对象:

function sectionObject(tabNumber, sectionNumber) {
    var section = Xrm.Page.ui.tabs.get(tabNumber).sections.get(sectionNumber);

    this.setDisabled = function (disablestatus) {
        var controls = section.controls.get();
        var controlsLenght = controls.length;
        for (var i = 0; i < controlsLenght; i++) {
            controls[i].setDisabled(disablestatus)
        }
    };

    this.clearFields = function () {
        var controls = section.controls.get();
        var controlsLenght = controls.length;
        for (var i = 0; i < controlsLenght; i++) {
            controls[i].getAttribute().setValue(null);
        }
    };

}

var section=new sectionObject(0,1);
section.setDisabled(true/false);

关于javascript - 为 Crm 表单中的一个部分的所有字段设置禁用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24707837/

相关文章:

javascript - jquery 倒计时今天日期

javascript - 使用 AJAX 的下一页/上一页

javascript - 我不断收到 'unable to get property ' 长度'未定义或空引用'

asynchronous - CRM 2011工作流程 "Invalid Pointer"错误

sql - 如何加入 dbo.LocalizedLabelView 来获取 Dynamics CRM 中的表单标签?

javascript - Moment.js 中的安全时间比较

javascript - 为什么他的 fetchXml count 属性不限制返回的记录?

database - 在 Dynamics CRM 2011 实例之间迁移数据?

javascript - CRM 2011,使用 JavaScript 创建 SalesOrderDetail

javascript - 使用javascript中的onclick获取输入标签中每个值的值