最终我要找的是onSaveComplete
事件。
问题是我们有插件在保存时修改实体数据。对于大多数属性,这很好,因为保存完成后,表单上的数据会更新。客户端脚本是有问题的,因为(据我所知)没有事件表明在保存实体时插件更新了值。
我提出的最佳解决方案是挂钩onSave
事件,阻止默认保存操作,并改为使用data.save()
:
function onSave(context) {
var args = context.getEventArgs();
args.preventDefault();
Xrm.Page.data.save().then(function() {
//check for changed attributes here
});
}
(实际代码有点复杂,以防止递归等,但你明白了)
最终这种方法最终变得非常混乱,我应用它的形式越多,感觉就越真实。所以我的问题是 - 有更好,更标准的方法来解决这个问题吗?
答案 0 :(得分:0)
我通过另一种" hack"完成了类似于后保存JS事件的事情。
以下是它的工作原理:
ModifiedOn
字段放在表单ModifiedOn
' s OnChange
活动每次保存表单时,您附加到OnChange
的事件都会触发(因为数据发生变化时ModifiedOn
也是如此)。
很可能ModifiedOn
应该在表单上设置为只读,以避免冲突脚本。