Dynamics CRM如何通过Ribbon Workbench仅在特定Form隐藏Ribbon按钮
Dynamics CRM Ribbon Workbench 特定Form隐藏按钮实现方案
完全可以实现该需求,你可以通过以下两种Display Rule配置方式完成,仅在指定Form隐藏按钮、不影响其他Form的按钮显示:
方案1:原生FormEntityContextRule 配置(无代码,官方推荐)
这是最稳定的原生实现方式,不需要额外开发自定义脚本:
- 打开Ribbon Workbench,加载对应实体的Ribbon自定义解决方案
- 找到需要调整的目标Ribbon按钮,右键选择「Customize Command」
- 在该Command关联的Display Rules下新增
FormEntityContextRule规则 - 规则属性的
FormId字段填写你要限制的特定Form的GUID(可在Form编辑页URL中提取,或导出解决方案后查看Form XML的id属性获取) - 规则
AppliesTo选择「Primary Entity」,如果要实现仅在该Form隐藏按钮,将InvertResult属性设为True即可:匹配到指定Form时规则返回False,按钮隐藏,其他Form下规则返回True,按钮正常显示 - 发布配置后生效
方案2:自定义JavaScript规则(适配复杂逻辑场景)
如果需要叠加其他判断条件,可以用自定义规则实现:
- 先编写自定义Web资源JS方法,示例代码如下:
function checkTargetForm() { // 目标Form的GUID,替换为你实际的FormID,注意统一为小写 const targetFormId = "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx".toLowerCase(); const currentFormId = Xrm.Page.ui.formSelector.getCurrentItem().getId().replace(/[{}]/g, "").toLowerCase(); // 匹配到目标Form返回false,按钮隐藏;其他场景返回true,按钮显示 return currentFormId !== targetFormId; }
- 在Display Rules下新增
CustomRule,绑定上述JS对应的Web资源,方法名填写checkTargetForm - 发布配置后生效
注意:配置完成后先在测试环境验证不同Form下的按钮显示状态,确认符合预期后再发布到生产环境,避免影响全局功能。
内容的提问来源于stack exchange,提问作者MVC_Nhibernate
相关产品推荐
相关产品推荐

