June 26, 2013

XRM: Bind a CRM Option Set to a DropDownList


This Method bind a CRM option set to a DropDown List ( The Option Set would reference a field in a specific entity )

 public static void fillOptionsList(IOrganizationService service, string EntityLogicalName,
          string fieldName, DropDownList optionSetList)
        {
            try
            {

                RetrieveAttributeRequest retrieveAttributeRequest =
                    new RetrieveAttributeRequest
                    {
                        EntityLogicalName = EntityLogicalName,
                        LogicalName = fieldName,
                        RetrieveAsIfPublished = true,
                    };

                // Execute the request.
                RetrieveAttributeResponse retrieveAttributeResponse =
                    (RetrieveAttributeResponse)service.Execute(
                    retrieveAttributeRequest);

                // Access the retrieved attribute.
                PicklistAttributeMetadata retrievedPicklistAttributeMetadata =
                    (PicklistAttributeMetadata)
                    retrieveAttributeResponse.AttributeMetadata;

                // Get the current options list for the retrieved attribute.
                OptionMetadata[] optionList =
                    retrievedPicklistAttributeMetadata.OptionSet.Options.ToArray();

                //Dictionary<int,string> LocalizedLabelDic = new Dictionary<int,string>();

                //List<ListItem> OptionSetItems = new List<ListItem>();

                foreach (OptionMetadata o in optionList)
                {
                    optionSetList.Items.Add
                        (new ListItem(o.Label.LocalizedLabels.FirstOrDefault().Label, o.Value.Value.ToString()));
                }
            }
            catch (Exception e)
            {
                //Logger.LogException(e);
            }
        }

No comments:

Post a Comment