我知道如何修改子网格的 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();
}