Crm 2011:刷新关联的网格视图
本文关键字:网格 视图 关联 刷新 2011 Crm | 更新日期: 2023-09-27 18:14:02
是否有方法刷新相关的网格视图?我在帐户表单上有一个销售订单视图,在这个表单上我有一个按钮(新订单)打开一个新的销售订单表单,在这个表单中我做我的订单。问题是:当我保存我的订单表单时,我想刷新我的订单关联视图(在帐户表单中),但我不知道如何获得控件名称或如何访问它。我尝试了很多方法,比如
Xrm.Page.ui.controls.get("Orders").refresh();
document.getElementById("areaOrders").contentWindow.location.reload(true);
谢谢。
可以使用
来刷新子网格Xrm.Page.getControl('new_subgrid').refresh();
然而,根据我的经验,它是非常错误的(因为RU12),所以要谨慎使用。您还需要检查您检索的控件的类型,并确保它是一个网格,否则将抛出错误。
但是你问了一个稍微不同的问题:
当我保存我的订单时,我想刷新我的订单关联视图(在帐户表单中)
我理解这意味着您从帐户表单打开了订单表单,并希望刷新帐户表单上的子网格。
最简单的答案是否定的,你不能用支持的方式做到这一点。
这可能是可能的,但它不会很漂亮。您需要获得对正在打开的窗口的引用,该引用可能在
中可用。window.opener
我没有尝试过,也没有在机器前尝试过。但我会反对它,替代方案是一个单一的点击手动刷新子电网;这是个不错的选择。
这是我写的一个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();
}
});
},
我曾经写过一篇关于在Microsoft Dynamics CRM中自动刷新子网格的博文。
解决方案是一个不支持的定制,基本上可以归结为:
document.getElementById("crmGrid").control.refresh();
将"crmGrid"替换为要刷新的子网格的div id。
据我所知,没有支持刷新的方式