根据另一个字段选择过滤OptionSet

时间:2012-10-12 20:20:44

标签: javascript jquery dynamics-crm dynamics-crm-2011 crm

我有一个名为STATES的optionSet。另一个名为RESTAURANTS。

我的目标是根据选择的状态过滤Restaurants选项集。

我目前的方法是设计选项的值,其中:

States[0] = 1000
States[1] = 2000
States[2] = 3000

然后,餐馆:

Restaurants[3] = 1003
Restaurants[30] = 2004

然后,当状态字段发生变化时,我会遍历餐馆。如果餐厅价值不在所选州的范围内,我会调用removeOption(Restaurant.value)。

我的问题是,如果状态被多次更改,则每个值都将被删除,因为我没有“刷新”选项集或“replaceOption”。

有没有办法在通过removeOption删除它们后通过javascript显示所有optionSet值?

2 个答案:

答案 0 :(得分:2)

您要做的是创建一个从属选项列表。 SDK中有一个示例,this blog post for Crm 4this MSDN article for 2011对此进行了解释。

答案 1 :(得分:2)

更好的设计是拥有两个自定义实体:一个用于州,一个用于餐馆。 餐馆实体将具有到州的必需(强制)查询字段(对于N:1关系)。 添加查找状态和餐厅,您将拥有该选项列表。 然后,您可以使用内置功能根据另一个查找的值过滤一个查找。没有代码,没有压力,几乎没有维护。

不要忘记您需要确保用户在

上具有“追加”权限

您可以通过导入轻松设置所有状态的记录,并且不要让用户修改这些记录。进口餐馆包括国家信息。您可以使用安全角色来确定将来允许哪些用户创建新的餐馆记录,以便在不作为管理员工作的情况下使其保持最新状态。

我知道这并没有回答您提出的有关过滤选项列表的问题,但我确信它会回答您背后隐含的业务要求。