65.9K
CodeProject is changing. Read more.
Home

Enable or Disable Dynamics CRM 2011 Ribbon Control using JavaScript

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0 vote)

Feb 27, 2013

CPOL
viewsIcon

29267

How to enable or disable the ribbon control using JavaScript.

Introduction

In Dynamics CRM 2011, to Enable or Disable a Ribbon control we have to update the RibbonXml tag of the entity. In this tip, I will show you how to enable or disable the ribbon control using JavaScript.

Background

Every ribbon control has a unique id in Dynamics CRM 2011. E.g., for contact entity, the Save button ID is 'contact|NoRelationship|Form|Mscrm.Form.contact.Save-Large'. If you notice, the button ID is made of 'EnityName|NoRelationship|Form|Mscrm.Form.EntityName.ButtonDisplayNameandSize'. The size of the Save and 'Save & Close' button is large, while 'Save & New' and Delete button are Medium sized. So for the Save& New button, the ID will be 'contact|NoRelationship|Form|Mscrm.Form.contact.SaveAndNew-Medium'.

Using the Code

Following is the JavaScript function for enabling or disabling the button:

//
function HideRibbonControl(formName) {
    
   var saveButtonID = formName + "|NoRelationship|Form|Mscrm.Form." + formName + ".Save-Large";
    var saveandcloseButtonID = formName + "|NoRelationship|Form|Mscrm.Form." + formName + ".SaveAndClose-Large";
    var saveandnewButtonID = formName + "|NoRelationship|Form|Mscrm.Form." + formName + ".SaveandNew-Medium";
    var deactivateButtonID = formName + "|NoRelationship|Form|Mscrm.Form." + formName + ".Deactivate-Medium";
    var deleteButtonID = formName + "|NoRelationship|Form|Mscrm.Form." + formName + ".Delete-Medium";
    HideARibbonButton(saveButtonID);
    HideARibbonButton(saveandcloseButtonID);
    HideARibbonButton(saveandnewButtonID);
    HideARibbonButton(deactivateButtonID);
    HideARibbonButton(deleteButtonID);
}
 
function HideARibbonButton(nameOfButton) {
   var btn = window.top.document.getElementById(nameOfButton);
    var intervalId = window.setInterval(function () {
      if (btn != null) {
        window.clearInterval(intervalId);
        btn.disabled = true;
       }
 
    }, 50);
}
//

Points to Remember

The above JavaScript code works before installing the Roll-up 12. As Roll-up 12 enables support for multi browser capability, the JavaScript code might require some changes.