Sometimes inspecting all the elements with Developer Tools or clicking over and over again on the CRM form, attribute by attribute can be irritating. There for, I propose the following approach to all the CRM Consultants and Developers out there who need the attributes’ schema names fast. The JS library is stand-alone and all that is needed is a call to the main function – Expose (on the OnLoad event).
function ToggleAttributeVisibility(attributeName, isVisible) { var attr = Xrm.Page.getAttribute(attributeName); if(attr) { attr.controls.forEach(function (callControl) { callControl.setVisible(isVisible); }); } } function ExposeAttributes(showHidden) { if(showHidden == undefined || showHidden == null) showHidden = true; var attributes = Xrm.Page.data.entity.attributes.get(); for (var i in attributes) { var attr = attributes[i]; var attrName = attr.getName(); var attrType = attr.getAttributeType(); if(showHidden) ToggleAttributeVisibility(attrName, true); var attrData = $("#" + attrName + "_d"); var attrDataHeader = $("#header_" + attrName + "_d"); var attrDataFooter = $("#footer_" + attrName + "_d"); var replaceWith = "<b>" + attrName + "</b> (" + attrType + ")"; if(attrData && attrData.length) attrData.html(replaceWith); if(attrDataHeader && attrDataHeader.length) attrDataHeader.html(replaceWith); if(attrDataFooter && attrDataFooter.length) attrDataFooter.html(replaceWith); } } function Expose() { ExposeAttributes(); } |
And a sneak preview:
Happy coding! 🙂