Tuesday 28 October 2014

Show MS CRM 2011/2013 Optionset values in Dropdownlist in Asp.net

I’m feeling really happy while writing this blog, because i have been too busy from last couple of months to write even a single blog. From now on, I’m hoping to keep this activity continued.

Few days back i got a very interesting requirement from one of my customer to show OptionSet values in dropdownlist in asp.net.
So we can use below code to populate optionset values in dropdownlist in asp.net Windowor Web application.

As shown below 'Stream'  field  is being showing in CRM Contact form :






public Dictionary<intstring>
RetrieveOptionsetMetadata(IOrganizationService _iOgranizationService)
{  
//Dictionary to store value and text
 Dictionary<int,string> _DropdownDatasource=newDictionary<int,string>();
 //Create request to fetch optionset
 RetrieveAttributeRequest _Request = new RetrieveAttributeRequest{
EntityLogicalName ="contact",    // Name of Entity
LogicalName =“new_stream”,    // Name of Option Set field
RetrieveAsIfPublished =true
 };
 // Execute the request
 RetrieveAttributeResponse _Response =(RetrieveAttributeResponse)_iOgranizationService.Execute(_Request);
 PicklistAttributeMetadata _PicklistAttributeMetadata = (PicklistAttributeMetadata)_Response.AttributeMetadata;
 OptionMetadata[] optionList =_PicklistAttributeMetadata.OptionSet.Options.ToArray();
 foreach (OptionMetadata _Optionset in optionList) {
_DropdownDatasource.Add(int.Parse(_Optionset.Value.ToString()), _Optionset.Label.UserLocalizedLabel.Label);
}
 return _DropdownDatasource;
}
After that we can set datasource for dropdownlist like below
DropDownList1.DataSource = RetrieveOptionsetMetadata(_iOgranizationService);
DropDownList1.DataBind();

In ASP.Net it will look like below:


Enjoy !!!

Hope this post help someone !!!
Blogger Widgets