Relabelling Composite Control Fields

This article is about renaming composite control fields in Dynamics CRM.

We can change the display name of the entity fields easily by editing field display name property. But we can’t change fields label used in address composite controls. In this post we are demonstrating how to relabel composite control fields.

Requirement: Relabel city field in address composite control in account entity.

Note:
You can’t change field logical name once it is created.

Solution

We can implement this requirement using Java Script. We have option to access composite control using JavaScript.  It can be refered using the following ways:

    <composite control name>_compositionLinkControl_<constituent attribute name>

If we want to refer any field which is used in the composite control, it can be done like the following. Here we are accessing the city field:

    <composite control name>_compositionLinkControl_address1_city

To relabel the normal fields, we can use setLabel method, so we can use the same method to relabel city as well. Let’s say we want to rename city field to “Distric”. We can use the following code for that:

  1. Xrm.Page.getControl('address1_composite_compositionLinkControl_address1_city').setLabel("District");   
Similarly we can refer other fields as well. You can refer composite control name from the respective entity form or you can also refer it here.

Using Code

To use this code we need to create JavaScript web resource, where we can have the following method. We need to call this method on Onload of the account entity form.
  1. function RelableAddressControl()        
  2. {    
  3.     
  4.    Xrm.Page.getControl('address1_composite_compositionLinkControl_address1_city').setLabel("District");    
  5.     
  6. }    
form liberary

Now after publishing the changes, the following changes will be visible after opening any account record:

see changes