我们有一个名为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似乎在保存期间不会将禁用字段的值发送回服务器,因此实际上不会保存新值。
任何想法都会受到欢迎。 :)
答案 0 :(得分:1)
看起来你已经解决了,但我很好奇。您是否尝试过使用业务规则?这种基本功能是CRM 2015中的业务规则可以很好地处理的。
例如这样: -