我在CRM 2011中有一个Kit报价产品,我试图在关联的产品视图更新时调用一个函数。
在F12调试工具中,我可以看到网格ID是' crmGrid_productassociation_association':
但是以下js代码似乎不起作用:
var grid = document.getElementById("crmGrid_productassociation_association").control;
if (grid != null)
{
alert("success");
}
当我在页面加载时运行此代码时:
console.dir(Xrm.Page.ui.controls.get());
crmGrid_productassociation_association控件未出现在控件列表中。相反,只显示原始报价产品上的控件。有谁知道如何在关联的网格视图刷新上调用js函数?
答案 0 :(得分:0)
对于那些想知道的人,我能够通过JS获得CRM 2011中的关联网格,你需要一个如下所示的函数:
function reloadKitProducts() {
var iframe = document.getElementById('areaKitsFrame');
if (iframe == null || iframe.readyState != "complete") {
setTimeout(reloadKitProducts, 3000);
return;
}
var subgrid = iframe.contentWindow.document.getElementById('crmGrid_productassociation_association').control.add_onRefresh(getKitProductsOnLineItemChange);
}
您需要获取包含子网格的iframe的ID。这是主线:
var subgrid = iframe.contentWindow.document.getElementById('crmGrid_productassociation_association').control.add_onRefresh(getKitProductsOnLineItemChange);
它仅在您单击导航窗格中的链接时加载,并且仍然需要一两秒钟才能加载,因此您必须实现递归超时。