【问题标题】:How do I refresh the list on the homepage view of an entity如何刷新实体主页视图上的列表
【发布时间】:2012-01-06 11:55:35
【问题描述】:

我的一个 CRM 2011 实体上有一个自定义功能区按钮,可以有效地禁用该实体。

然后我想刷新该实体主页上的当前视图。我想要这个由 JS 触发。

目前我能够刷新整个父窗口,这将使我回到仪表板而不是该实体的主页。

谢谢!

【问题讨论】:

  • “主页”是什么意思?您看到该实体的多条记录的页面,还是单个记录的编辑器页面?并且禁用,您的意思是停用?

标签: c# javascript jquery dynamics-crm-2011


【解决方案1】:

好问题。这里有两种方法可以做到:

//refreshes the entire element in the parent window that contains the view
window.parent.opener.location.reload();

//refreshes just the grid control that contains the view (probably what you're looking for)
window.parent.opener.document.getElementById("crmGrid").control.refresh();

【讨论】:

  • 我正在使用模型弹出窗口,因此打开器不可用,但是我删除了它并正在使用 window.parent.document.getElementById("crmGrid") 并在监视窗口中获取 Null 作为值调试。我去验证了网格元素的名称,但是 IE 的开发者工具当然不允许你选择那个区域。
  • 这个对我有用。 document.all['crmGrid'].control.refresh();
  • 很好,很高兴看到它成功了。通常我必须在 IE 中的 F12 窗口中进行挖掘,查看蓝色轮廓直到它包围我想要的元素,然后再进一步挖掘以找到实际的 ID。所以它有效,但它很乏味。
  • 同意。不幸的是,IE 没有蓝色勾勒出网格或该中心区域的任何东西。
【解决方案2】:

如果有人来这里使用 Dynamics 365

对自定义功能区按钮执行以下操作:

  • PrimaryControl 作为CrmParameter 添加到您的JS 函数中
  • 使用以下代码刷新列表:
    function yourJSFunction(primaryControl) {
        // Do your stuff
        primaryControl.refresh();
    }
    

    Xrm.WebApi.online.executeMultiple(...) 的示例:

    function yourJSFunction(primaryControl) {
        // Create the requests
        // ...
    
        Xrm.WebApi.online.executeMultiple(requests)
                         .then(function (result) {
                             primaryControl.refresh();
                         });
    }
    
  • 【讨论】:

    • PrimaryControl 对我不起作用,但 SelectedControl 确实...
    猜你喜欢
    • 2016-03-05
    • 1970-01-01
    • 1970-01-01
    • 2023-04-11
    • 2015-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多