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

时间:2019-06-13 05:18:48

标签: dynamics-crm dynamics-crm-2016

在Dynamics CRM 2016中,我们有一个很好的快速创建表单。但是,一旦完成“快速创建”并保存了记录(新记录又出现在父表单的子网格中),该子网格下的汇总字段就不会在屏幕上重新刷新。直到用户按F5。

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

在快速创建成功运行之后,是否有人知道如何强制刷新主窗体?

enter image description here

3 个答案:

答案 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)
    }	 

谢谢