我正在尝试在crm 2011中创建一个过滤后的子网格。 我发现以下链接描述了如何制作它: http://community.dynamics.com/product/crm/f/117/p/76157/140281.aspx
这是建议代码的建议:
var relatedOHSOrders = document.getElementById("OHSOrderSubGrid_d"); //Set Subgrid Id
var fetchXml = "..."
relatedOHSOrders.control.setParameter("fetchXml", fetchXml);
我遇到的问题是我得到了Object does not support .setParameter property or method
而当我对它进行了调查时我没有看到relatedOHSOrders.control.
下的setParameter
我卸载并重新安装了汇总11,以防万一,但仍有同样的问题!
请注意我尝试了其他方式来使用setParameter。以下代码也不起作用
Xrm.Page.getControl("OHSOrderSubGrid")._control.get_innerControl();
relatedOHSOrders.setParameter("fetchXml", fetchXml);
似乎每个人都使用这个代码来过滤子网格,但我不确定它的问题是什么,它没有出现。
提前感谢您的任何帮助或建议。
答案 0 :(得分:3)
您可能知道Microsoft Dynamics CRM内部部署的最新更新汇总和Microsoft Dynamics CRM Online的服务更新包括Web应用程序中的重大更改,以便能够支持各种浏览器。看看这篇文章:http://support.microsoft.com/kb/2795627
您尝试使用的脚本正在以前的RUP版本的CRM中工作。 setParameter 功能不再可用。现在您可以使用 SetParameter 代替它。幸运的是,刷新功能仍然可用。因此,请更改代码中的函数名称,它将起作用。
答案 1 :(得分:2)
我自己找到了问题的答案。以下代码完美无缺
function setOhsOrderGrid()
{
var relatedOrders = document.getElementById("OrderSubGrid"); //Set Subgrid Id
//If this method is called from the form OnLoad, make sure that the grid is loaded before proceeding
if (relatedOrders == null || relatedOrders.readyState != "complete") {
//The subgrid hasn't loaded, wait 1 second and then try again
setTimeout('setOhsOrderGrid()', 1000);
return;
}
var fetchXml = "<?xml version='1.0'?>";
fetchXml += "<fetch distinct='false' mapping='logical' output-format='xml-platform' version='1.0'>";
fetchXml += "<entity name='new_ohsorder'> <attribute name='new_orderid'/>";
fetchXml += "<attribute name='new_order_no'/>";
fetchXml += "<attribute name='createdon'/>";
fetchXml += "<order descending='false' attribute='new_order_no'/>";
fetchXml += "<filter type='and'> <condition attribute='new_clientcontactid' value='{1E9A621B-ACA1-E011-9A67-005056A8002D}' uitype='new_clientcontact' uiname='OHS-000001-6FBC4-CCR-01' operator='eq'/>";
fetchXml += "</filter>";
fetchXml += "</entity>";
fetchXml += " </fetch>";
relatedOrders.control.setParameter("fetchXml", fetchXml); --> It breaks
relatedOrders.control.refresh(); --> It breaks
};
setOhsOrderGrid();
我不得不将var relatedOrders = document.getElementById(“OrderSubGrid_d”)更改为 var relatedOrders = document.getElementById(“OrderSubGrid”)
我得到了一条评论,即setParameter不受支持。我不知道为什么以及如何知道这一点。因为setParameter document.getElementById(“OrderSubGrid”)。control.setParameter !!! 有人有任何想法吗? 我想知道是否有人知道如何以受支持的方式编写过滤器子网格!??
答案 2 :(得分:0)
只需将control.setParameter
替换为control.SetParameter
。
有关详细信息,请查看此MSDN article。