javascript - 更改 MSCRM 2011 子网格实体

标签 javascript dynamics-crm-2011 subgrid

我知道如何修改子网格的FetchXml。我正在尝试使用 JS 根据选项集的选择动态更改子网格。根据选项集,子网格将需要能够显示不同的实体(不同时)。
示例:子网格当前显示具有特定关系类型的客户。选项集发生更改,现在子网格应显示名字为 John 的潜在客户。

我收到的错误是“FetchXml 中指定的实体名称与 EntityExpression 中的实体名称不匹配”

我将下面的数据输入到网格中。这只是一个多值搜索。 rc_entitylist 包含系统中的所有实体。 rc_attributelist 包含所选实体的所有字段。用户选择一个实体,选择要搜索的字段,输入搜索条件(每行一个值),然后相应地填充子网格。

function runSearch() {
var entityname = Xrm.Page.getAttribute("rc_entitylist").getText();
var sgrid = "searchResults";
var fetchXml = '<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false">'+
'<entity name="' + entityname + '">'+
'<all-attributes />' +
'<filter type="and">'+
'<filter type="or">';

    var textBoxLines = document.getElementById("rc_searchcriteria").innerText;
    var attributename = Xrm.Page.getAttribute("rc_attributelist").getText();
    var lines = textBoxLines.split(/\n/);
    for(var i=0;i < lines.length; i++){
    fetchXml = fetchXml + '<condition attribute="' + attributename + '" operator="eq" value="'+ lines[i] +'" />';
    }

  fetchXml = fetchXml + '</filter>'+
'</filter>'+
'</entity>'+
'</fetch>';
 updateXml(sgrid, fetchXml, entityname);
 }

 function updateXml(grid, xmlfield, entityname) {   
try {      
    var g = document.getElementById(grid).control;
    g.setParameter("fetchXml", xmlfield);
} catch (e) { }   
// Refresh the grid      
document.getElementById(grid).control.refresh();   
}

最佳答案

您是否考虑过向表单添加多个子网格,并根据选项集的 on-change 事件隐藏/显示它们?

关于javascript - 更改 MSCRM 2011 子网格实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16037244/

相关文章:

jqgrid - 隐藏展开/折叠符号或停用规范。 jqGrid 子网格中的行

javascript - 如何查找子字符串与哪个值匹配

javascript - JSON透视图

javascript - 由于内容类型不正确,AJAX 调用返回 404 错误

javascript - 从主网格获取数据以填充子网格

javascript - 如何在 jqGrid 子网格中设置标题对齐方式?

javascript - JQuery 根据另一个输入框是否有值切换输入框

javascript - 如何使用 javascript 检索当前用户的语言?

dynamics-crm-2011 - MS-CRM 2013 无效的当事人对象类型 9

c# - 名称为 account 的代理类型已由另一个程序集定义