0

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

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

我将下面的 fetch 输入到网格中。这只是一个多值搜索。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();   
}
4

1 回答 1

2

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

于 2013-04-16T12:37:26.037 回答