How to Bind an ASP.NET DropDownList to an Enumeration with two lines of code

I have seen users writing number of lines of code to do a simple thing as binding an Enumeration to an ASP.NET DropDownList or ListBox. Here's how to do this with just two lines of code

<asp:DropDownList ID="DropDownList1" runat="server">

asp:ListBox ID="ListBox1" runat="server"></asp:ListBox>


enum Speed
Low = 1,
Medium = 2,
High = 3
protected void Page_Load(object sender, EventArgs e)
DropDownList1.DataSource = Enum.GetValues(typeof(Speed));

ListBox1.DataSource = Enum.GetValues(typeof(Speed));


Friend Enum Speed
Low = 1
Medium = 2
High = 3
End Enum

Protected Sub
Page_Load(ByVal sender As Object, ByVal e As EventArgs)
DropDownList1.DataSource = System.Enum.GetValues(GetType(Speed))

ListBox1.DataSource = System.Enum.GetValues(GetType(Speed))
End Sub



About The Author

Suprotim Agarwal
Suprotim Agarwal, Developer Technologies MVP (Microsoft Most Valuable Professional) is the founder and contributor for DevCurry, DotNetCurry and SQLServerCurry. He is the Chief Editor of a Developer Magazine called DNC Magazine. He has also authored two Books - 51 Recipes using jQuery with ASP.NET Controls. and The Absolutely Awesome jQuery CookBook.

Follow him on twitter @suprotimagarwal.


Unknown said...

Thanks for the tip, but how would you do it if you wanted the value of the dropdown to be the value of the enumerator, and the text of the dropdown to be the name of the enumerator?

Suprotim Agarwal said...

Eric: Nice question. I will do a post with the solution in a couple of hours from now.

Maksim said...

Both and Winforms tutorial:

In this little tutorial i will try to expline how you can use Enum and fill your Combobox with items from that Enum and make the some thing but in reverse. (Select the item from combobox, check if it belong to your Enum and get proper Enum value)