我想在保存完成后向表单的save添加一个回调以激活OnLoad事件处理程序。我还想在保存完成后强制页面刷新。
Google向我展示了许多网页,这些网页在MSDN文章中重申了相同的信息,但是他们没有解释在表单完成保存后将save方法添加到回调的位置。
我知道我可以将Xrm.Page.data.refresh(true).then(回调)添加到表单控件并让页面刷新,但我想在保存完成后刷新页面。 / p>
如何在表单保存后使用Refresh()刷新表单?
另外,如何使用Save()添加回调来保存表单保存后将运行的表单?
答案 0 :(得分:1)
您是否尝试过在保存回调中调用save并调用refresh?
保存:Xrm.Page.data (client-side reference)
Xrm.Page.data.save(saveOptions).then(successCallback, errorCallback)
刷新:Xrm.Page.data (client-side reference)
Xrm.Page.data.refresh(save).then(successCallback, errorCallback);
组合:
Xrm.Page.data.save().then(function(){Xrm.Page.data.refresh(false);});
- 编辑 -
我会猜测你正在尝试做什么...
您可以尝试的一件事是挂钩OnSave事件。使用javascript超时检查表单的isDirty属性。一旦表单不再脏,CRM就保存了数据。
创建一个新的表单库javascript文件并添加如下内容: 使用' SetExecuteOnSaveComplete'为表单创建一个新的OnSave事件。作为要调用的函数。
function ExecuteWhenSaveComplete(callback) {
setTimeout(function () {
if(!Xrm.Page.data.entity.getIsDirty())
return callback();
//alert('not complete');
ExecuteWhenSaveComplete(callback);
}, 500);
}
function SetExecuteOnSaveComplete(){
ExecuteWhenSaveComplete(function(){
alert('form save complete');
// do what you need to do
});
}