Dynamics crm 在Dynamics CRM 2016中快速创建后刷新父窗体

Dynamics crm 在Dynamics CRM 2016中快速创建后刷新父窗体,dynamics-crm,dynamics-crm-2016,Dynamics Crm,Dynamics Crm 2016,在Dynamics CRM 2016中,我们有一个快速创建的表单,运行良好。但是,一旦完成快速创建并保存记录(新记录显示在父窗体的子网格中),子网格下的汇总字段在用户按F5之前不会在屏幕上重新刷新 (我们有一些C代码来更新汇总) 有人知道如何在快速创建成功运行后强制刷新主窗体吗 您可以在刷新事件时添加超时,并在1-2秒后再次刷新 function OnFormLoad() //add this function onload form { var subGrid = wind

在Dynamics CRM 2016中,我们有一个快速创建的表单,运行良好。但是,一旦完成快速创建并保存记录(新记录显示在父窗体的子网格中),子网格下的汇总字段在用户按F5之前不会在屏幕上重新刷新

(我们有一些C代码来更新汇总)

有人知道如何在快速创建成功运行后强制刷新主窗体吗


您可以在刷新事件时添加超时,并在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
    }

我将尝试使用以下代码段停止OOB保存事件:

然后使用以下命令将实体保存在代码中:

Xrm.Page.data.entity.save();

然后刷新/重新加载浏览器窗口。我没试过这个,但很粗糙的理论:)

我们让它工作了。。。使用Timur建议的功能,但只是将最后一个功能更改为:

函数fnOnRefresh(){
setTimeout(函数(){
window.parent.location.reload(true);
}, 500)

}
Roll-up字段不会自动计算,我们有一个C#插件可以实现这一功能。但新值直到F5ok之后才显示,因此将重新计算汇总字段,只是UI未更新抱歉,是的。我只是编辑了这个问题来澄清。我应该写“刷新”而不是“重新计算”。对不起,我是新到铁木寺的。。。我已经让它工作了,它正在刷新子网格。但是主窗体上它下面的汇总字段仍然没有更新。我现在也附加了一个图像,所以你可以看到我正在尝试刷新的汇总字段-你可以看到那里的数字没有加起来,直到用户按F5或右下角的刷新。
Xrm.Page.data.entity.save();