crm 2011 js - 刷新时获取关联的网格视图

时间:2016-10-11 18:42:39

标签: javascript crm microsoft-dynamics quote

我在CRM 2011中有一个Kit报价产品,我试图在关联的产品视图更新时调用一个函数。

enter image description here

enter image description here

在F12调试工具中,我可以看到网格ID是' crmGrid_productassociation_association':

enter image description here

但是以下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函数?

1 个答案:

答案 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);

它仅在您单击导航窗格中的链接时加载,并且仍然需要一两秒钟才能加载,因此您必须实现递归超时。