我为自定义实体创建了一些代码,涉及动态显示的问题以及回答它们的能力。我正致力于展示以前回答的问题,以及更新答案的能力。为此,我有一些函数触发我的自定义实体表单的负载,另一个触发onSave。
我的麻烦是每次发生保存时我的onLoad代码都会运行,有效地删除了onSave代码的输出。我只希望我的onLoad代码在第一次加载表单时运行。否则,我要触发onSave的代码应该处理其他所有内容。
我尝试解决此问题的一种方法是使用Xrm.Page.ui.getFormType();
这将返回值1或2,其中1对应于正在创建的记录,2对应于正在更新的记录。这适用于一个场景 - 当创建自定义实体的新记录时,我不希望我的onLoad代码运行,getFormType()
解决了这个问题。但是当我保存记录时,返回值发生了变化,导致我的onLoad代码运行OnSave,这搞砸了。
关于如何解决这个问题的任何想法?我可以预见像getFormType()
这样有用的东西,但我对如何处理事情感到有点失落。谢谢!
答案 0 :(得分:1)
将一个onChange事件处理程序添加到modifiedon属性,该值只有在保存记录后才会更改,您可以拥有一个全局参数并设置其值并使用其值来阻止onLoad再次重新触发。 / p>
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;
}