C# Crm 2011:刷新关联的网格视图

C# Crm 2011:刷新关联的网格视图,c#,javascript,silverlight,dynamics-crm-2011,dynamics-crm,C#,Javascript,Silverlight,Dynamics Crm 2011,Dynamics Crm,是否有方法刷新关联的网格视图? 我在账户表单上有一个销售订单视图,在这个表单上我有一个按钮New Order打开一个新的销售订单表单,在这个表单中我做我的订单, 问题是:当我在订单上保存时,我想刷新帐户表单中的订单关联视图,但我不知道如何获取控件名或如何访问它。 我试过很多方法,比如 Xrm.Page.ui.controls.get("Orders").refresh(); document.getElementById("areaOrders").contentWindow.locat

是否有方法刷新关联的网格视图? 我在账户表单上有一个销售订单视图,在这个表单上我有一个按钮New Order打开一个新的销售订单表单,在这个表单中我做我的订单, 问题是:当我在订单上保存时,我想刷新帐户表单中的订单关联视图,但我不知道如何获取控件名或如何访问它。 我试过很多方法,比如

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

谢谢。

这是我编写的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();
        }
    });
},

这是我编写的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();
        }
    });
},
我在博客上写过。 解决方案是一种不受支持的定制,基本上归结为:

用要刷新的子网格的div id替换crmGrid

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

我在博客上写过。 解决方案是一种不受支持的定制,基本上归结为:

用要刷新的子网格的div id替换crmGrid


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

要刷新子网格,可以使用

Xrm.Page.getControl('new_subgrid').refresh();
然而,根据我的经验,它是非常有缺陷的,因为RU12无论如何,所以要小心使用。您还需要检查所检索控件的类型,并确保它是网格,否则将抛出错误

但是,您提出了一个稍微不同的问题:

在订单上保存时,我希望刷新帐户表单中的订单关联视图

我的理解是,您有一个从帐户表单打开的订单表单,并希望刷新帐户表单上的子网格

答案很简单:不,你不能用支持的方式来做这件事

这也许是可能的,但不会很好。您需要获取打开窗口的引用,该窗口可能在中可用

window.opener

我没有试过,也不是在机器前试过。但我建议不要这样做,另一种方法是单击鼠标手动刷新子网格;这是一个不错的选择。

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

Xrm.Page.getControl('new_subgrid').refresh();
然而,根据我的经验,它是非常有缺陷的,因为RU12无论如何,所以要小心使用。您还需要检查所检索控件的类型,并确保它是网格,否则将抛出错误

但是,您提出了一个稍微不同的问题:

在订单上保存时,我希望刷新帐户表单中的订单关联视图

我的理解是,您有一个从帐户表单打开的订单表单,并希望刷新帐户表单上的子网格

答案很简单:不,你不能用支持的方式来做这件事

这也许是可能的,但不会很好。您需要获取打开窗口的引用,该窗口可能在中可用

window.opener

我没有试过,也不是在机器前试过。但我建议不要这样做,另一种方法是单击鼠标手动刷新子网格;这是一个不错的选择。

但是是否可以从销售订单表单刷新账户表单上的销售订单关联视图?@wben因此该视图不在实体表单的主选项卡上?现在,我有一个从账户表单打开的订单,和我在帐户窗体上的关联视图但是否可以从销售订单窗体刷新帐户窗体上的销售订单关联视图?@wben因此该视图不在实体窗体的主选项卡上?现在,我有一个从帐户窗体打开的订单,以及我在帐户窗体上的关联视图您是对的,我有两个窗体,帐户表单希望有我的销售订单的子网格,以及从帐户表单打开的订单表单。我尝试过window.opener,但如果无法刷新,它无法帮助我了解Microsoft在添加新联系人或新帐户时是如何刷新子网格视图的。这一定是一种方法。正如您所知,当您打开一个新的订单时,您有一个保存按钮,可以将数据插入SalesOrderBase和SalesOrderExtensionBase表,当您单击此按钮时,子网格关联视图将自动刷新。我之所以更改此项,是因为我想插入自定义数据,因此,当我点击Save按钮时,我取消了该按钮应该执行的代码,并执行我的代码,因为sub_网格不会刷新!你说得对,我有两个表格,一个是账户表格,一个是销售订单的子网格,另一个是从账户表格中打开的订单表格。我尝试过window.opener,但如果无法刷新,它无法帮助我了解Microsoft在添加新联系人或新帐户时是如何刷新子网格视图的。这一定是一种方法。锂
您知道,当您打开一个新的订单时,您有一个保存按钮,可以将数据插入SalesOrderBase和SalesOrderExtensionBase表中,当您单击此按钮时,子网格关联视图将自动刷新。我更改了该按钮,因为我想插入自定义数据,因此,当我点击Save按钮时,我取消了该按钮应该执行的代码,并执行我的代码,因为sub_网格不会刷新!