【问题标题】:Refresh Parent Form after Quick Create in Dynamics CRM 2016在 Dynamics CRM 2016 中快速创建后刷新父窗体
【发布时间】:2019-06-13 05:18:48
【问题描述】:

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

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

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

【问题讨论】:

  • 不会自动计算汇总字段
  • 是的,我们有一个 C# 插件可以做到这一点。但是直到 F5 之后新值仍然不会显示
  • ok,所以重新计算汇总字段,只是UI没有更新
  • 对不起,是的。我刚刚编辑了这个问题以澄清。我应该写“刷新”而不是“重新计算”。抱歉,我是 CRM 新手

标签: dynamics-crm dynamics-crm-2016


【解决方案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
    }

【讨论】:

  • 谢谢@Timur U ...我已经开始工作了,它正在刷新子网格。但是主窗体上它下面的汇总字段仍然没有更新。我现在也附上了一张图片,所以你可以看到我正在尝试刷新的汇总字段 - 你可以看到那里的数字没有加起来,直到用户按 F5 或右下角的刷新。跨度>
【解决方案2】:

我会尝试使用以下 sn-p 停止 OOB 保存事件:Read more

function onSave(context) {

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

//save explicitly here 

//reload the window here

}

然后将实体保存在代码中:

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

然后刷新/重新加载浏览器窗口。我没有尝试过这个但非常粗略的理论:)

【讨论】:

    【解决方案3】:

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

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

    谢谢

    【讨论】:

      猜你喜欢
      • 2021-01-21
      • 1970-01-01
      • 2019-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多