Quantcast
Channel: Sam's Activities
Viewing all articles
Browse latest Browse all 3363

Lock/Unlock Composite fields using Java Script in Dynamics CRM

$
0
0

Traditionally we use the following way to lock or unlock the fields programmatically,

Xrm.Page.getControl(fieldname).setDisabled(true/false);

But there could be some cases where we would need to lock/unlock the composite fields programmatically.

For example, consider the following scenario,

Suppose that we are populating the Bill To address on Quote as the address of the customer selected on the quote and we want this address should not be changed and should not be editable. In this case we would need to lock the Bill To address fields programmatically.

As we cannot access the composite fields directly, we would need to use some different way to lock the composite fields. The following code snippet shows how to lock the composite fields using JScript.

///This function will lock/unlock the fields defined in the fields array

///It takes the input parameter as “state”, whose value can be “True” or “False”. Depending on the value of this parameter the field will get locked or unlocked.

function setFieldReadOnly(state){

var fields = new Array();

try {

fields = ["billto_line1", "billto_line2", "billto_line3", "billto_postalcode", "billto_stateorprovince", "billto_city", "billto_country"];

//loop through each field of the composite field Bill To

$.each(fields, function (index, item) {

if (Xrm.Page.getControl(“billto_composite_compositionLinkControl_”+item)) {

//lock or unlock the fields

Xrm.Page.getControl(“billto_composite_compositionLinkControl_”+item).setDisabled(state);

}

});

} catch (e) {

Xrm.Utility.alertDialog(e);

}

}

As you can see in the above code snippet, we have to access the composite field as composite field name with the field that belongs to the composite field.

For example, to access the composite field “billto_line1”, we have used

Xrm.Page.getControl(“billto_composite_compositionLinkControl_billto_line1”).setDisabled(true/false);

You can call this function on any event (OnLoad,OnSave,OnChange).lock

Similarly to lock or unlock the field “address1_line1” of the composite field “Address1” on Account we have to use following code

Xrm.Page.getControl(“address1_composite_compositionLinkControl_address1_line1”).setDisabled(true/false);

Conclusion:

To lock/unlock the fields of the Composite field, we have to access the field as, Xrm.Page.getControl(compositeFieldName_compositionLinkControl_fieldBelongToCompositeField).setDisabled(state);

There's much more, for more Dynamics CRM Tips and Tricks head on to Inogic Blog. If you have any questions on Dynamics CRM or need any help in implementation, customization, upgradation of Dynamics CRM or are looking to get more out of your CRM, feel free to reach us at crm@inogic.com today!

The post Lock/Unlock Composite fields using Java Script in Dynamics CRM appeared first on Inogic Blog.


Viewing all articles
Browse latest Browse all 3363

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>