在 Dynamics CRM 2016 中快速创建后刷新父表单

Refresh Parent Form after Quick Create in Dynamics CRM 2016

在 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 保存事件:Read more

function onSave(context) {

  var saveEvent = context.getEventArgs();
  saveEvent.preventDefault();

//save explicitly here 

//reload the window here

}

然后使用代码保存实体:

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

然后 refresh/reload 浏览器 window。我没试过这个但是非常粗略的理论:)

我们成功了...使用了 Timur 的建议,但只是将最后一个函数更改为:

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

谢谢