javascript - 是否可以使用 JavaScript 在 CRM 的 OOB 查找对话框窗口中获取视图的名称或 ID
问题描述
有没有办法在 CRM 的 OOB Lookup 窗口中获取 Look in 视图的名称或 ID。
让我解释一下情况。我在按钮上有一个查找对话框窗口。单击该按钮时,将打开此窗口。默认情况下,视图仅显示过滤记录,因为我在 URL 中使用了过滤条件。
但是当我确实更改了查看视图时,它显示了相同的过滤结果,这是不正确的。如何实施。这是我的代码;
var url = serverurl + "/_controls/lookup/lookupinfo.aspx?AllowFilterOff=0&DefaultType=" + Xrm.Internal.getEntityCode('p15_inquiries') + "&DisableQuickFind=0&DisableViewPicker=0&IsInlineMultiLookup=0&IsTypeUnresolved=1&LookupStyle=multi&ShowNewButton=1&ShowPropButton=1&browse=false¤tObjectType=10017¤tid=%7b" + bookingId + "%7d&dType=1&isRegardingFieldPopulated=false&mrsh=false&objecttypes=" + Xrm.Internal.getEntityCode('p15_inquiries') + "";
var someFetchXml = '<filter type="and"><condition attribute="p15_contactinquiriesid" operator="eq" value="' + contactId +'"/></filter>';
var filter = "&customFilter=" + CrmEncodeDecode.CrmUrlEncode(CrmEncodeDecode.CrmUrlEncode(someFetchXml)) + "&customFilterTypes=";
url = url + filter;
var dialogwindow = new parent.Mscrm.CrmDialog(Mscrm.CrmUri.create(url), window, 550, 550);
dialogwindow.setCallbackReference(function (result){
});
dialogwindow.show();
解决方案
你正在做不受支持的事情。如您所知 - 不建议这样做。
此外,您想要实现的不是全局预期行为 - 我们一直希望坚持使用跨视图应用的过滤器。此外,我们无法连接onChange
“查看”视图下拉列表的事件来识别和删除应用的过滤器。如果您的要求是独特的,那么建议您开发自己的 HTML Web 资源来模拟查找窗口并实现逻辑。否则,在单击自定义按钮之前确定必要性并做出决定,并将基于此添加过滤器。
顺便说一句,查找定制已经发展了很多,CRM 版本也是如此——你还停留在 2011 年吗?我们可以做addPreSearch
和addCustomFilter
调整过滤器。但仍然无法更改onChange
查找弹出窗口中的下拉菜单。阅读更多
我没有 CRM 2011 来验证 - 但你应该尝试addCustomView
选项。
Xrm.Page.getControl(primContactFieldName).addCustomView(viewId, entityName, viewDisplayName, fetchXml, layoutXml, true);
推荐阅读
- file - 如何通过 Perl 打开和编辑文件?
- javascript - 如何根据用户操作删除firebase数据库中的特定记录
- matlab - 如何在实体生成器中生成更高的值而不是标准值 1?
- php - 在 PHP 中使用 try-catch 如何在不抛出异常的情况下进入 finally?
- mysql - MySQL 按某些值排序,即使表中不存在
- javascript - 如何打开带有自定义链接的窗口?
- c# - 是否可以阻止应用程序的启动?
- android - 如何使用 Windows 10 从 React native Expo 为 ios 构建 ipa?
- sql - SQL Server在同一张表上的不同选择语句和不同的结果
- r - 我希望 plot1 出现在 tab1 上,而 plot2 出现在 tab2 上