在Dynamics CRM 2016中,我们有一个很好的快速创建表单。但是,一旦完成“快速创建”并保存了记录(新记录又出现在父表单的子网格中),该子网格下的汇总字段就不会在屏幕上重新刷新。直到用户按F5。
(我们有一些C#代码来更新汇总)。
在快速创建成功运行之后,是否有人知道如何强制刷新主窗体?
答案 0 :(得分:1)
您可以在刷新事件上添加超时,并在1-2秒后再次刷新一次。
function OnFormLoad() //add this function onload form
{
var subGrid = window.parent.document.getElementById("id of your subgrid")
if (subGrid !== null) {
if (subGrid.control)
subGrid.control.add_onRefresh(fnOnRefresh)
else
setTimeout(OnFormLoad, 500);
} else {
setTimeout(OnFormLoad, 500);
}
}
function fnOnRefresh() {
setTimeout(function() {
Xrm.Page.ui.controls.get("id of your subgrid").refresh();
}, 2000) //after 2 sec refresh subgrid
}
答案 1 :(得分:0)
我将尝试使用以下代码段停止OOB保存事件:Read more
git checkout F
git reset --soft A # move pointer of branch to A, do not change content, all differences will be in index
git commit -m "Squashed stuff" # now you have a single revision after A that has a tree exactly like F
git cherry-pick F..I # replay everything after the squashed revisions
然后使用以下代码将实体保存在代码中:
function onSave(context) {
var saveEvent = context.getEventArgs();
saveEvent.preventDefault();
//save explicitly here
//reload the window here
}
然后刷新/重新加载浏览器窗口。我没有尝试过,但是理论很粗糙:)
答案 2 :(得分:0)
我们让它工作了……使用了Timur的建议,但只是将最后一个功能更改为:
function fnOnRefresh() {
setTimeout(function() {
window.parent.location.reload(true);
}, 500)
}
谢谢