Dynamics CRM--在表单脚本中处理onLoad与OnSave事件



我为一个自定义实体创建了一些代码,其中涉及动态显示的问题和回答问题的能力。我正在努力显示以前回答的问题,以及更新答案的能力。为了做到这一点,我让某些函数在我的自定义实体窗体的Load上启动,另一个函数在Save上启动。

我的问题是,每次保存时,我的onLoad代码都会运行,有效地擦除了onSave代码的输出。我只希望我的onLoad代码在第一次加载表单时运行。否则,我想在Save上激发的代码应该处理其他所有内容。

我试图解决这个问题的一种方法是使用Xrm.Page.ui.getFormType();。它返回一个值1或2,其中1对应于正在创建的记录,2对应于正在更新的记录。这适用于一个场景——我不希望在为自定义实体创建新记录时运行onLoad代码,getFormType()解决了这个问题。但当我保存记录时,返回值发生了变化,导致我的onLoad代码运行OnSave,这把事情搞砸了。

关于我该如何解决这个问题,有什么想法吗?我可以认为getFormType()这样的东西很有用,但我有点不知所措。谢谢

在modifiedon属性中添加一个onChange事件处理程序,该值只有在记录保存后才会更改,您可以有一个全局参数并设置其值,并使用其值来阻止onLoad再次重新启动。

var canRunOnLoadCode = true;
//form onLoad function
function onLoad() {
 if(!canRunOnLoadCode) return;
//on load code below
}
//register the below function on change of modified on
function afterOnSave(){
 canRunOnLoadCode = false;
}

最新更新