4

我找到了一种如何使“过滤的子网格”与 JavaScript 一起工作的方法,但是当我在子网格上添加“搜索框”时,它会搜索所有记录,而不是过滤结果的记录。

基本上,我们唯一要做的就是在单击“子网格 A”中的一行时放置一个“FetchXML”,“子网格 B”正在获取新的“FetchXML”。不幸的是,我们不能再在“Subgrid 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();
4

3 回答 3

3

搜索后看看你的 EffectiveFetchXml。您会注意到它不包括您最初传递给它的 EffectiveFetchXml。

不幸的是,解决这个问题的唯一方法是劫持搜索按钮来触发您自己的事件。在您的事件中传递您想要的有效FetchXml,包括搜索框的值(例如,在搜索“t”时注入类似这样的东西......

<filter type="or">
<condition attribute="subject" operator="like" value="t%" />
<condition attribute="regardingobjectidname" operator="like" value="t%" />
</filter>
于 2012-04-20T18:29:20.300 回答
1

Paul thx 为您的回答,它有效:) 我使用“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 : "");

不,我的任务是完成所需的实现,快速查找就像正常的一样工作!

于 2012-04-26T13:22:31.070 回答
1

setParameter函数不再可用。现在您可以使用SetParameter代替它。幸运的是刷新功能仍然可用。因此,更改代码中的函数名称,它将起作用。

于 2013-03-22T04:51:05.127 回答