Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / web / ASP.NET

Binding DropDownList Using List Collection, Enum and DataSet in ASP.NET

4.88/5 (12 votes)
21 Dec 2011CPOL 188.1K  
Binding DropDownList Using List Collection, Enum and DataSet in ASP.NET
We can bind DropDownList in different ways by using List, Dictionary, Enum and DataSet.

To bind DropDownList, we need to set some properties:

  • DataSource
  • DataValueField
  • DataTextField


Let's see how to use these properties to bind DropDownList.

Binding DropDownList with List

In this case, the DropDownList both 'Value' and 'Text' field are same.
C#
DropDownList ddl = new DropDownList();
List<string> countries = new List<string>();
countries.Add("USA");
countries.Add("India");
ddl.DataSource = countries;
ddl.DataBind();

Binding DropDownList with Dictionary


C#
Dictionary<string, string> States = new Dictionary<string, string>();
States.Add("-1","-Select State-");
States.Add("AP", "Andhra Predesh");
States.Add("KA", "Karnataka");
States.Add("TN", "Tamilnadu");
States.Add("KL", "Kerala");
ddl.DataSource = States;
ddl.DataValueField = "Key";
ddl.DataTextField = "Value";
ddl.DataBind();

Binding DropDownList with DataSet


My DataSet contains a Class table(class_id,class_name,description).
C#
ddl.DataSource = dataset.Tables[0].DefaultView;
ddl.DataValueField = "class_id"; 
ddl.DataTextField = "class_name";
ddl.DataBind();
ListItem item = new ListItem("-Select Class-", "-1");
ddl.Items.Insert(0, item);

Binding DropDownList with Enum


Let’s take Countries ‘enum’ as follows:
enum enCountries:int{India=0,USA,UK,UAE};

Let's see how to bind the DropDownList With Enum:
C#
ddlEnumBind.Items.Add("--Select Country--");
//get enum items to get the respective enum value 
string[] enumNames=Enum.GetNames(typeof(enCountries));
foreach (string item in enumNames)
{
    //get the enum item value
    int value = (int)Enum.Parse(typeof(enCountries), item);
    ListItem listItem = new ListItem(item, value.ToString());
    ddlEnumBind.Items.Add(listItem);
}

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)