CRM 2011: Attach OnClick event to all fields on the CRM Form and Passing querystring to silverlight web resource in the footer

 

/*

Attach a click event to all fields on the CRM 2011 form.

There is a silverlight page on the footer of the form. On click of any field i need to pass the schema name of the source field(which raised the event) to the silverlight page.

Using the Xrm properties we cannot get the control of a control in the footer.

Here I had to pass a dynamic parameter to the querystring of the silverlight web resource and the ‘setData’ method also cannot be used directly.

 

On load of the form I attached events to all label fields on the form.

For the web resource on the footer there is a property called ‘control’ which gave access to the ‘setData’ method.

Initially I dont want any data parameter to be passed. So in the web resource properties i passed an empty string as data parameter.

This allowed me to change the data parameter dynamically.

*/

 

function AttachAttributEvents()

{

    var attribs = Xrm.Page.data.entity.attributes.get();

    var attribName = "";

    for (var i in attribs)

    {

        attribName = attribs[i].getName();

        if (attribName != "")

        {

            document.getElementById(attribName + '_c').onclick = function ()

                { //Attach events to the label of each attribute

                    var Elt = window.event.srcElement.parentElement.id;

                    var EltName = Elt.substring(0, Elt.length - 2);

                    document.getElementById("WebResource_FieldInfo").control.setData(EltName); //Pass Data parameter to the web resource

                };

        }

    }

}