我知道如何修改子网格的FetchXml。我试图基于JS中的选项集的选择来动态更改子网格。基于选项集,子网格将需要能够显示不同的实体(不是同时) 示例:子网格当前显示具有特定关系类型的帐户。选项集会更改,现在子网格应显示其名字为John的Leads。
我收到的错误是“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();
}
答案 0 :(得分:2)
您是否考虑过向表单添加多个子网格,并根据选项集的on-change事件隐藏/显示它们?