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.