Dynamics crm 2011 对象不支持在CRM 2011中创建筛选子网格时setParameter方法的属性或方法

Dynamics crm 2011 对象不支持在CRM 2011中创建筛选子网格时setParameter方法的属性或方法,dynamics-crm-2011,dynamics-crm,Dynamics Crm 2011,Dynamics Crm,我试图在crm 2011中创建一个过滤子网格。 我找到了下面的链接,描述了如何制作: 以下是建议构建代码的方式: var relatedOHSOrders = document.getElementById("OHSOrderSubGrid_d"); //Set Subgrid Id var fetchXml = "..." relatedOHSOrders.control.setParameter("fetchXml", fetchXml); 我遇到的问题是,我获取的对象不支持.setPa

我试图在crm 2011中创建一个过滤子网格。 我找到了下面的链接,描述了如何制作:

以下是建议构建代码的方式:

var relatedOHSOrders = document.getElementById("OHSOrderSubGrid_d"); //Set Subgrid Id
var fetchXml = "..."
relatedOHSOrders.control.setParameter("fetchXml", fetchXml);
我遇到的问题是,我获取的
对象不支持.setParameter属性或方法
,当我对其进行debug时,我在
相关排序器.control下看不到setParameter。
我卸载并重新安装了rollup 11,以防万一,但仍然存在相同的问题

请注意,我尝试了使用setParameter的其他方法。下面的代码也不起作用

Xrm.Page.getControl("OHSOrderSubGrid")._control.get_innerControl();
relatedOHSOrders.setParameter("fetchXml", fetchXml);
似乎每个使用此代码的人都有过滤子网格,但我不确定我的问题是什么,它没有显示出来


提前感谢您的帮助或建议。

我自己找到了问题的答案。下面的代码非常有效

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”);//设置子网格Id
//如果从表单OnLoad调用此方法,请确保在继续之前加载网格
if(relatedOrders==null | | relatedOrders.readyState!=“完成”){
//子网格尚未加载,请等待1秒钟,然后重试
setTimeout('setOhsOrderGrid()',1000);
返回;
}
var fetchXml=“”;
fetchXml+=“”;
fetchXml+=“”;
fetchXml+=“”;
fetchXml+=“”;
fetchXml+=“”;
fetchXml+=“”;
fetchXml+=“”;
fetchXml+=“”;
fetchXml+=“”;
relatedOrders.control.setParameter(“fetchXml”,fetchXml);-->
relatedOrders.control.refresh();-->它会中断
}; 
setOhsOrderGrid()


我必须将var relatedOrders=document.getElementById(“OrderSubGrid”)更改为 var relatedOrders=document.getElementById(“OrderSubGrid”)


我得到一条评论说setParameter不受支持。我不知道为什么,我怎么会知道。因为setParameter document.getElementById(“OrderSubGrid”).control.setParameter!!! 有人知道吗?
我想知道是否有人知道如何以支持的方式编写过滤器子网格

我自己找到了问题的答案。下面的代码非常有效

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”);//设置子网格Id
//如果从表单OnLoad调用此方法,请确保在继续之前加载网格
if(relatedOrders==null | | relatedOrders.readyState!=“完成”){
//子网格尚未加载,请等待1秒钟,然后重试
setTimeout('setOhsOrderGrid()',1000);
返回;
}
var fetchXml=“”;
fetchXml+=“”;
fetchXml+=“”;
fetchXml+=“”;
fetchXml+=“”;
fetchXml+=“”;
fetchXml+=“”;
fetchXml+=“”;
fetchXml+=“”;
fetchXml+=“”;
relatedOrders.control.setParameter(“fetchXml”,fetchXml);-->
relatedOrders.control.refresh();-->它会中断
}; 
setOhsOrderGrid()


我必须将var relatedOrders=document.getElementById(“OrderSubGrid”)更改为 var relatedOrders=document.getElementById(“OrderSubGrid”)


我得到一条评论说setParameter不受支持。我不知道为什么,我怎么会知道。因为setParameter document.getElementById(“OrderSubGrid”).control.setParameter!!! 有人知道吗?
我想知道是否有人知道如何以支持的方式编写过滤器子网格

正如您所知,Microsoft Dynamics CRM内部部署和Microsoft Dynamics CRM Online服务更新的最新更新汇总包括web应用程序中的重大更改,以便能够支持多种浏览器。看看这篇文章:

您尝试使用的脚本在以前的RUP CRM版本中工作。
设置参数功能不再可用。现在可以使用SetParameter代替它。幸运的是,刷新功能仍然可用。因此,更改代码中的函数名,它将正常工作。

正如您所知,Microsoft Dynamics CRM内部部署和Microsoft Dynamics CRM Online服务更新的最新更新汇总包括web应用程序中的重大更改,以便能够支持各种浏览器。看看这篇文章:

您尝试使用的脚本在以前的RUP CRM版本中工作。
设置参数功能不再可用。现在可以使用SetParameter代替它。幸运的是,刷新功能仍然可用。因此,更改代码中的函数名,它就会工作。

只需将
控件.setParameter
替换为
控件.setParameter


有关更多详细信息,请查看。

只需将
控件.setParameter
替换为
控件.setParameter


有关更多详细信息,请查看此项。

毫无例外,无论何时访问DOM(即使用文档对象),都不支持它。修改CRM表单的唯一受支持的方法是使用Xrm对象。毫无例外,无论何时访问DOM(即使用document对象),都不支持该方法。修改CRM表单的唯一受支持的方法是使用Xrm对象