65.9K
CodeProject is changing. Read more.
Home

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

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.88/5 (12 votes)

Dec 21, 2011

CPOL
viewsIcon

188085

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.
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

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).
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:
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);
}