crm 2011 js - 刷新时获取关联的网格视图
crm 2011 js - Get associated grid view on refresh
我在 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 函数?
对于那些想知道的人,我能够使用 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);
它只会在您单击导航窗格中的 link 时加载,并且仍然需要一两秒钟才能加载,因此您必须实现递归超时。
我在 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 函数?
对于那些想知道的人,我能够使用 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);
它只会在您单击导航窗格中的 link 时加载,并且仍然需要一两秒钟才能加载,因此您必须实现递归超时。