Archive for February, 2012

Closing Aspx page on PostBack by suppressing close confirmation

February 4, 2012 Leave a comment


Below is the code to close the current .aspx page in the Postback (i.e., On Button click) without “Close” confirmation dialog

// Close the window with no close confirmation

Response.Write(“<script language=’javascript’> {”, ‘_self’, ”); window.close(); }</script>”);

Hope it helps 🙂

Reading Optionset using CRM 2011 IOrganizationService

February 3, 2012 1 comment


Below is the code to read “Optionset” using CRM 2011 IOrganizationService.

Below logic reads the Optionset and returns “KeyValue” list (Key = Option Label; Value = Option Value)

using Microsoft.Xrm.Sdk;

using Microsoft.Xrm.Sdk.Client;

using Microsoft.Xrm.Sdk.Query;

using Microsoft.Xrm.Sdk.Messages;

using Microsoft.Xrm.Sdk.Metadata;

  public List<KeyValuePair<string, int>> GetOptionSet(string entityName, string attributeName, IOrganizationService service)


var optionSet = new List<KeyValuePair<string, int>>();

            RetrieveAttributeRequest request = new RetrieveAttributeRequest();

request.EntityLogicalName = entityName;

request.MetadataId = Guid.Empty;

request.LogicalName = attributeName;

request.RetrieveAsIfPublished = true;

 OrganizationResponse response = service.Execute(request); 

if (response != null && response.Results != null)


foreach (KeyValuePair param in response.Results)


foreach (OptionMetadata option in ((EnumAttributeMetadata)param.Value).OptionSet.Options)


string name = option.Label.LocalizedLabels[0].Label.ToString().Trim();

int value = option.Value.Value;

optionSet.Add(new KeyValuePair(name, value));




return optionSet;


        // Returns option label by value

public string GetOptionLabelByValue(List<KeyValuePair<string, int>> optionSet, int optValue)


foreach (KeyValuePair< string, int> optn in optionSet)


if (optn.Value == optValue)


return optn.Key;



return string.Empty;


        // Returns option Value by Label

public int GetOptionValueByLabel(List<KeyValuePair<string, int>> optionSet, string optLabel) {        {

foreach (KeyValuePairoptn in optionSet)


if (optn.Key) == optLabel)


return optn.Value;



return 0;


How Do I call these methods:-

  • To read ‘Gender (i.e., gendercode)’ optionset of entity ‘Contact (i.e., contact)’
  • Get Optionset dictionary by calling “GetOptionSet()” method
  • Call “GetOptionLabelName()” to get Label by Value
  • Call “GetOptionValueByLabel()” to get Value by Label

// Get OptionSet First

var  optGender  = GetOptionSet(“contact”, “gendercode”, orgService);

// Get Option label by value

string optLblGander = GetOptionLabelName(optGender  , 1); /* 1 is Value of Male */

// To get Option Value by Label

int optValueGander = GetOptionValueByLabel(optGender  , “Male”);

Hope it helps 🙂

New window is opening up on button click in modal dialog

February 1, 2012 1 comment


In one of my requirement, I am opening an “.aspx” page in modal dialog on CRM ribbon button click.

My .aspx page has a button and when I click on the button , The same page is opening up in another window

Fix :-

  • Add “base target=”_self” tag to the .Aspx page’s “head” (Refer below)


<base target=”_self” />



Hope it helps 🙂