我可以以编程方式刷新Outlook实体视图吗? (在线2013)

时间:2014-02-06 17:12:34

标签: dynamics-crm-2011 dynamics-crm crm dynamics-crm-online

我们的设置是Outlook 2010 + CRM插件连接到2013在线实例。

我在主网格功能区上有一些自定义功能区按钮,用于操作选定的引线。在某些操作之后,我想告诉Outlook刷新当前视图,因为操作已更新选定的潜在客户,因此它们不应再显示在当前视图中。

目前,我必须向用户解释视图按其自己的时间表更新,如果他们希望立即发生,他们必须手动刷新视图(“视图”选项卡/“刷新”按钮)。毫不奇怪,我对此抱怨很多!

This似乎表明有一种方法可以以编程方式刷新视图,但我不了解如何使其工作的细节。

Here是关于手动刷新的图片的一些信息。

这是我需要使用自定义按钮JS刷新的Outlook视图的图片: enter image description here

1 个答案:

答案 0 :(得分:2)

该视图可以在2011年以不受支持的方式刷新,因此此代码可能在2013年不起作用,并且可能会因某些更新汇总而中断。 匿名函数必须位于由功能区按钮引用的库中;视图中没有事件或Xrm对象 我创建了一个新的隐藏功能区按钮(Ribbon Workbench效果很好),该按钮具有引用包含此功能的JavaScript库的操作;该函数不需要调用 - 它在加载库时运行。

var seconds = 30;
/*  
 * @param {int} inSeconds: how often the view should refresh in seconds  
 * */ 
(function (inSeconds) {     
    var interval = setInterval(function () {         
        document.getElementById("crmGrid").control.refresh();     
    }, inSeconds * 1000); 
}(seconds));
// The line to refresh the grid is not supported

以支持的方式可以做的是刷新表单上的子网格;如果您可以让用户从表单而不是视图中工作,您可以使用此支持的代码并以上述方式调用它,或者更确切地说是onload事件:

Xrm.Page.ui.controls.get("sub_grid_name").refresh();