首页 > 解决方案 > 是否可以使用 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&currentObjectType=10017&currentid=%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();

标签: javascriptdynamics-crmdynamics-crm-2011

解决方案


你正在做不受支持的事情。如您所知 - 不建议这样做。

此外,您想要实现的不是全局预期行为 - 我们一直希望坚持使用跨视图应用的过滤器。此外,我们无法连接onChange“查看”视图下拉列表的事件来识别和删除应用的过滤器。如果您的要求是独特的,那么建议您开发自己的 HTML Web 资源来模拟查找窗口并实现逻辑。否则,在单击自定义按钮之前确定必要性并做出决定,并将基于此添加过滤器。

顺便说一句,查找定制已经发展了很多,CRM 版本也是如此——你还停留在 2011 年吗?我们可以做addPreSearchaddCustomFilter调整过滤器。但仍然无法更改onChange查找弹出窗口中的下拉菜单。阅读更多

我没有 CRM 2011 来验证 - 但你应该尝试addCustomView选项。

Xrm.Page.getControl(primContactFieldName).addCustomView(viewId, entityName, viewDisplayName, fetchXml, layoutXml, true);

参考


推荐阅读