当“视图选择器”设置为“关”时,“筛选的查找”不起作用

时间:2012-03-21 21:31:05

标签: dynamics-crm-2011 filtered-lookup

我已经通过javascript为查找创建了一个过滤后的视图,该视图从选项列表中获取了过滤值。这工作正常,但我也想删除用户选择其中一个系统视图的功能。

如果我在“表单设计器”中的查找中将查看选择器选项设置为关闭,则会正确禁用视图选择,但我的过滤视图也包含在此排除项中,因此我的过滤器未应用。

如何同时使用自定义过滤视图同时阻止用户选择任何其他系统视图?

到目前为止,我唯一的想法是提供一个带有过滤器的默认视图,该过滤器始终不返回任何记录,并将其设置为唯一允许的视图选择。这将确保用户只能在我的过滤视图中选择记录。

2 个答案:

答案 0 :(得分:1)

我已经达成了一个可接受的解决方案,我将在这里为其他人总结,并将跟进我将链接的博客文章。

  1. 为要过滤的实体创建新视图。名称是上下文的内容,例如过滤了喜欢的饮料的客户。我们将此视图称为FV。
  2. 将查找属性添加到目标表单并将默认视图设置为FV
  3. 将视图选择器设置为关闭(以前导致我出现问题,但会在javascript中“修复”)
  4. 使用众多代码示例之一在javascript中创建过滤查找,包括SDK中的过滤查找。但是,不是给这个视图一个新的GUID,而是给它默认视图的GUID(在我们的例子中是FV)。您可以通过调用lookup.getDefaultView()来执行此操作,其中查找目标查找属性。
  5. 现在,您将拥有一个禁用了视图选择但现在会显示已过滤结果的查找。

答案 1 :(得分:0)

除了达伦的回答。

您可以在不添加新视图的情况下执行相同的步骤。

只需获取默认视图的指南:

var availableDefaultViewId = Xrm.Page.getControl(lookupField).getDefaultView();

然后将其设置为新的FV:

Xrm.Page.getControl(lookupField).addCustomView(availableDefaultViewId,entityName,viewDisplayName,fetchXml,layoutXml,true);

但是,您的viewDisplayName无法正常工作,它将获得默认的视图名称。