2012-03-21 37 views
2

我已经通过javascript为查找创建了一个过滤视图,该视图从picklist获取过滤器值。这工作正常,除了我也想删除用户选择其中一个系统视图的能力。当查看选择器设置为关闭时,过滤查找不起作用

如果我在窗体设计器中查找设置视图选择选项这个正确禁用视图选择,但我的筛选视图也包含在本排斥,因此不适用我的过滤器。

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

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

回答

1

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

  1. 为要过滤的实体创建一个新的视图。名称是顾客根据最喜欢的饮料过滤。我们将这个视图称为FV。
  2. 查找属性添加到您的目标的形式,并设置默认视图FV
  3. 设置视图选择关闭(这是以前造成我的问题,但在JavaScript将被“固定”)
  4. 用途之一在javascript中创建过滤查找的许多代码示例,包括SDK中的查找示例。然而,不是给这个视图一个新的GUID给它默认视图的GUID(在我们的例子中是FV)。您可以通过调用lookup.getDefaultView()来查找目标查找属性。

您现在将查看禁用视图选择,但它现在将显示您的过滤结果。

0

除了Darren的回答。

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

刚刚得到的默认视图的GUID:

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

,然后将其设置为你的新FV:

Xrm.Page.getControl(lookupField).addCustomView(availableDefaultViewId,的entityName,viewDisplayName,fetchXml,layoutXml,真正的);

但是,您的viewDisplayName将不起作用,它将获得默认的视图名称。

相关问题