【发布时间】:2011-12-16 21:31:10
【问题描述】:
默认情况下,Microsoft Dynamics CRM 2011 中的国家和州/省字段是纯文本框。
我希望它们改为下拉列表,并根据国家下拉列表中的选择更新状态下拉列表。但是,我不想为世界上每个国家/地区提供州和省,因此任何未配置的应该只显示正常的文本框。
【问题讨论】:
默认情况下,Microsoft Dynamics CRM 2011 中的国家和州/省字段是纯文本框。
我希望它们改为下拉列表,并根据国家下拉列表中的选择更新状态下拉列表。但是,我不想为世界上每个国家/地区提供州和省,因此任何未配置的应该只显示正常的文本框。
【问题讨论】:
在尝试了许多不同的解决方案之后,我们没有找到任何符合我们想要的方式的方法,因此我们创建了一个新的解决方案。
我们创建了一个countries_and_states.js 脚本,该脚本将把 Country 字段变成一个下拉列表,同时驱动 State/Province 字段。 State/Province 字段将是已配置国家/地区的下拉列表(默认情况下只有美国和加拿大,但很容易添加您自己的)。如果尚未配置国家/地区,则州/省字段将回退到默认文本框。
有关如何使用它的更多信息,请访问on this blog post。
【讨论】:
拥有动态控件的唯一“批准”方式(我认为组合框描述了您想要实现的目标)是使用可以通过 JavaScript 与表单数据交互的 Silverlight/HTML Web 资源。
我们一直在使用类似于您的方法来创建多选选择列表(将文本字段转换为复选框列表,然后将结果存储为 CSV),但是我们遇到了您可能想要的问题要注意。
为了让 ISV 通过MS CRM Marketplace 提供其产品,产品需要通过 ISV 软件测试 (.doc available here)。此测试不允许更改 DOM:
直接修改CRM UI的文档对象模型(DOM) 组件可能会破坏应用程序的稳定性和/或完全破坏它。
如何遵守
• 不要直接访问或修改文档对象模型 (DOM) 任何 CRM UI 组件/控件。
所以我们发现我们不得不重新审视我们的代码,以更换 JavaScript DOM 摆弄,转而支持更重量级但最终得到更多支持的 Silverlight 控件。
如果您不打算使用市场,那么这不会对您产生影响,只是需要注意您的修改可能在未来的 CRM 更新中不受支持。
【讨论】: