我找到了一种使"过滤子网格"与JavaScript一起使用的方法,但是当我在子网格上添加"搜索框"时,它会搜索所有记录,而不是作为过滤结果的记录。
基本上,我们唯一要做的就是在单击"子网格A"中的行时放置"FetchXML","子网格B"将获得新的"FetchXML"。 不幸的是,我们不能再在"子网格B"中搜索,它搜索"ALL"记录,它应该只在新的"FetchXML"中搜索。 有人在CRM 2011中完成了这项工作吗?
我唯一做的是:
//Setting the fetch xml to the sub grid.
relatedSamples.control.setParameter("fetchXml", fetchXml);
relatedSamples.control.setParameter("effectiveFetchXml", fetchXml);
relatedSamples.control.setParameter("fetchXmlForFilters", fetchXml);
//This statement will refresh the sub grid after making all modifications.
relatedSamples.control.refresh();
搜索后看看你的 effectiveFetchXml。 您会注意到它不包括您最初传递给它的有效 FetchXml 。
不幸的是,解决此问题的唯一方法是劫持搜索按钮以触发您自己的事件。 在你的事件中传递你想要的有效FetchXml,包括搜索框的值(例如,在搜索"t"时注入这样的东西......
<filter type="or">
<condition attribute="subject" operator="like" value="t%" />
<condition attribute="regardingobjectidname" operator="like" value="t%" />
</filter>
保罗感谢你的答案,它:)我使用"F12"工具搜索"搜索"按钮的ID是什么,然后我可以覆盖它:
if (document.getElementById("ModulesPlannedChoice_findCriteriaButton") != null) document.getElementById("ModulesPlannedChoice_findCriteriaButton").onclick = function () { refreshModulesPlanned(); }
var searchValue = (document.getElementById("ModulesPlannedChoice_findCriteria") != null ? document.getElementById("ModulesPlannedChoice_findCriteria").value : "");
不,我的任务是做所需的实现,快速查找像正常一样工作!
setParameter 函数不再可用。现在你可以使用 SetParameter 来代替它。幸运的是,刷新功能仍然可用。因此,更改代码中的函数名称,它将起作用。