我成功地按照以下Add Dropdown Menu to CRM 2011 ribbon的答案,实现了三个动态加载的FlyoutAnchor按钮和子菜单按钮等。
昨天子菜单按钮工作正常(单击事件被触发等),但在使用Ribbon XML等重新导入解决方案后,子菜单按钮告诉我(在工具提示中)它们被禁用。确切的消息是“此按钮当前已禁用。您可能没有选择使用此功能的项目。如果您没有权限使用此功能,请与您的系统管理员联系”。
所以我又回到了之前的Ribbon XML,但是子菜单按钮仍处于禁用状态。看起来我遇到了以下线程中描述的相同问题:CRM 2011 Dynamic Ribbon disabled HELP!!。但我已经在我的服务器上安装了Rollup 6,所以不应该这样。
我已经尝试重置IIS并重新导入解决方案(多次)。我还检查/添加了< EnableRule Id =“Mscrm.Enabled”/>规则等。
我无法再次启用子菜单按钮。我究竟做错了什么?请帮帮我。
答案 0 :(得分:2)
我终于再次启用了子菜单按钮。很难说出让它再次起作用的确切行动组合,但我会尝试在此处记录它作为参考。 建议的解决方案是强制CRM完全更新功能区。这可以通过执行以下步骤来完成:
替换< RibbonDiffXml> ...< / RibbonDiffXml>使用空的Ribbon diff xml,即:
<RibbonDiffXml>
<CustomActions />
<Templates>
<RibbonTemplates Id="Mscrm.Templates"></RibbonTemplates>
</Templates>
<CommandDefinitions />
<RuleDefinitions>
<TabDisplayRules />
<DisplayRules />
<EnableRules />
</RuleDefinitions>
<LocLabels />
</RibbonDiffXml>
保存您的更改。
可以采用的另一种方法是使用Ribbon Workbench for Dynamics CRM 2011 (Beta)。但要小心并始终进行解决方案备份,因为我发现该工具仍然非常多(或者我的解决方案太大)。 使用该工具进行一些功能区更改(例如:向“问题”实体添加新按钮),重新发布和测试。如果再次启用子菜单按钮,请重新导入并发布原始备份。子菜单按钮可能会保持启用状态。
因此,CRM内部出现了一些问题,并且通过强制重新构建有缺陷的功能区,CRM可以恢复自身或其他东西......我无法真正理解它。
答案 1 :(得分:1)
我最近遇到过类似的问题。你是从功能区运行的javascript吗?如果是这样,功能区可能会禁用您的按钮,因为它无法找到您正在调用的javascript函数(我无法找到支持此信念的文档,define actions和define javascript页面没有提及它,它可以我的情况刚刚巧合)。您最近是否更新了与功能区关联的js文件?