2013-05-17 71 views
1

是否有刷新关联网格视图的方法? 我在账户表格上有一个销售订单查看,在这个表格上我有一个按钮(新订单),打开一个新的销售订单表单,在这个表单中我做我的订单, 问题是:当我保存我的订单我想刷新我的订单关联视图(在账户表单中),但我不知道如何获取控制名称或如何访问它。 我尝试了很多方法像Crm 2011:刷新关联网格视图

Xrm.Page.ui.controls.get("Orders").refresh(); 
    document.getElementById("areaOrders").contentWindow.location.reload(true); 

谢谢。

回答

1

这是一个javascript函数,我写入强制子网格加载,如果窗体包含超过4个子网格。我相信,最近的汇总取得了代码过时的目的,但它可能会有助于你找到你的子网格:

/* 
By default, CRM only loads the first 4 subgrids on a form. This will load 
up all subgrids on the form, or only the number (over the default 4) if specified 
*/ 
forceSubgridLoad: function (countOver4) { 
    $(document).ready(function() { 

     var links = $("a.ms-crm-List-LoadOnDemand"); 
     for (i = 0; i < links.length && (countOver4 == null || i < countOver4); i++) { 
      links[i].click(); 
     } 
    }); 
}, 
+0

但是是否可以从销售订单表格刷新账户表格上的销售订单关联视图? – wben

+0

@wben所以视图不在实体形式的主要选项卡上? – Daryl

+0

现在,我有一个从帐户表单打开的订单表单,以及我在帐户表单中打开的订单表单 – wben

1

我已经在博客auto-refreshing a sub-grid in Microsoft Dynamics CRM
的解决方案是不支持的定制,以及基本上可以归结为这样:

document.getElementById("crmGrid").control.refresh(); 

更换“crmGrid”与分格即要被刷新的DIV ID。

据我所知,没有支持的方式来刷新。

3

要刷新一个子网格,您可以使用

Xrm.Page.getControl('new_subgrid').refresh(); 

然而,在我的经验,这是非常错误(因为RU12无论如何),所以请谨慎使用。您还需要检查您检索的控件的类型,并确保它是一个网格或将引发错误。

但是你问一个稍微不同的问题:

当我保存在我的订单我想刷新我的订单相关的示意图(在开户表格)

我理解到意味着您从帐户表单中打开了一个订单表单,并且希望刷新帐户表单上的子网格。

简单的答案是否定的,你不能以支持的方式做到这一点。

这可能是可能的,但它不会很漂亮。你需要得到一个参考打开的窗口中,可以在

window.opener 

可我还没有试过,我不盈一台机器的尝试。但我会建议反对它,替代方法是单击手动刷新子网格;这不是一个坏的选择。

+0

您是对的,我有两个表单帐户表单希望我的销售订单有一个子网格,账户表格。我试过了(窗口。但它不适用于,如果无法进行刷新,Microsoft在添加例如新联系人或新帐户时如何进行刷新,它会刷新子视图。它必须是一种方法来做到这一点。就像你知道的那样,当你打开一个新的订单窗体时,你有一个保存按钮,将你的数据插入到SalesOrderBase和SalesOrderExtensionBase表中,当你点击这个按钮时,子网关联视图会自动刷新。 – wben

+0

我改变了,因为我想插入我的自定义数据,所以当我点击保存按钮时,我取消了代码这个按钮应该做什么,我执行我的代码,因为sub_grid不刷新! – wben