如何在不更改保存的情况下更改值时禁用Dynamics CRM字段?

时间:2015-07-14 19:42:30

标签: dynamics-crm dynamics-crm-2015

我们有一个名为Primary的两个状态字段,设置为yes或no。当该字段设置为no时,用户应该能够将其更改为yes。当该字段设置为yes时,应该禁用它,因此用户无法再更改它。

我们在onload事件中有代码来处理这个问题;工作得很好。具有挑战性的案例是用户将字段从no更改为yes然后保存表单。这应该锁定该字段,以便用户无法将其更改回否。我们试图通过将以下代码放在onsave事件中来解决这个问题:

export function onSave() {
    var primaryControl = Xrm.Page.getControl(
            d.ConstituentAffiliation.AttributeNames.Primary.toLowerCase());
        if (primaryControl) {
            if (primaryControl.getAttribute().getValue()) {
                primaryControl.setDisabled(true);
            }
            else {
                primaryControl.setDisabled(false);
            }
        }
    }

这部分有效。它会禁用该字段,因此无法再更改它。但是,保存不起作用,因为Dynamics CRM似乎在保存期间不会将禁用字段的值发送回服务器,因此实际上不会保存新值。

任何想法都会受到欢迎。 :)

1 个答案:

答案 0 :(得分:1)

看起来你已经解决了,但我很好奇。您是否尝试过使用业务规则?这种基本功能是CRM 2015中的业务规则可以很好地处理的。

例如这样: - enter image description here