By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
455,207 Members | 1,416 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 455,207 IT Pros & Developers. It's quick & easy.

Looping through Enum on Page_Load

P: n/a
CK
Hi All,
Good morning. I had a quick question. I have a public Enum. During page load
I want to loop thru the Enum and put those as items in an asp:dropdownList.
Does anyone have any sample code to do this? Like a foreach loop.

Thanks for any help,
CK
May 17 '06 #1
Share this Question
Share on Google+
8 Replies


P: n/a
hi

foreach(string s in Enum.GetNames( typeof( your_enum) )
dropdownlist1.Items.Add( s);
--
--
Ignacio Machin,
ignacio.machin AT dot.state.fl.us
Florida Department Of Transportation
"CK" <c_**********@hotmail.com> wrote in message
news:h3*******************@newssvr11.news.prodigy. com...
Hi All,
Good morning. I had a quick question. I have a public Enum. During page
load I want to loop thru the Enum and put those as items in an
asp:dropdownList. Does anyone have any sample code to do this? Like a
foreach loop.

Thanks for any help,
CK

May 17 '06 #2

P: n/a
CK,

You should be able to call the static GetNames method on the Enum class
(passing the type of your enumeration), and then bind to the array of
strings that is returned to you.

Also, you might want to cache the string array somewhere, if you are
going to populate this list often. After all, the enumeration (and
therefore the array) is not going to change while the web site is up.

Hope this helps.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com

"CK" <c_**********@hotmail.com> wrote in message
news:h3*******************@newssvr11.news.prodigy. com...
Hi All,
Good morning. I had a quick question. I have a public Enum. During page
load I want to loop thru the Enum and put those as items in an
asp:dropdownList. Does anyone have any sample code to do this? Like a
foreach loop.

Thanks for any help,
CK

May 17 '06 #3

P: n/a
CK
Thanks Ignacio, this worked great, but how do i get the Enum values to be
the vlaues of the list items? Thanks again ~CK

"Ignacio Machin ( .NET/ C# MVP )" <ignacio.machin AT dot.state.fl.us> wrote
in message news:%2****************@TK2MSFTNGP03.phx.gbl...
hi

foreach(string s in Enum.GetNames( typeof( your_enum) )
dropdownlist1.Items.Add( s);
--
--
Ignacio Machin,
ignacio.machin AT dot.state.fl.us
Florida Department Of Transportation
"CK" <c_**********@hotmail.com> wrote in message
news:h3*******************@newssvr11.news.prodigy. com...
Hi All,
Good morning. I had a quick question. I have a public Enum. During page
load I want to loop thru the Enum and put those as items in an
asp:dropdownList. Does anyone have any sample code to do this? Like a
foreach loop.

Thanks for any help,
CK


May 17 '06 #4

P: n/a
This sounds like a bad design approach to even use enums as a basis for
databinding. An easier to code and scalable approach would be to create a
seperate class that provides a method which returns a DataTable which could
then be bound to..

public class MyClass
{
public static DataTable ListValues()
{
DataTable dt = new DataTable();
// create columns and add rows to datatable
return dt;
}
}

This will be beneficial for future development as well if you decide to move
the values into a database. The only thing that would need to be changed
would be the innerworkings of MyClass.ListValues(). And... this is much
easier to DataBind to.

"Nicholas Paldino [.NET/C# MVP]" wrote:
CK,

You should be able to call the static GetNames method on the Enum class
(passing the type of your enumeration), and then bind to the array of
strings that is returned to you.

Also, you might want to cache the string array somewhere, if you are
going to populate this list often. After all, the enumeration (and
therefore the array) is not going to change while the web site is up.

Hope this helps.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com

"CK" <c_**********@hotmail.com> wrote in message
news:h3*******************@newssvr11.news.prodigy. com...
Hi All,
Good morning. I had a quick question. I have a public Enum. During page
load I want to loop thru the Enum and put those as items in an
asp:dropdownList. Does anyone have any sample code to do this? Like a
foreach loop.

Thanks for any help,
CK


May 17 '06 #5

P: n/a
CK
I went with this code and it works pretty well

private void relatedExperience_DataBinding(object sender, EventArgs e)

{

DropDownList relatedExperience = (DropDownList) sender;

foreach(ExperienceRelated er in Enum.GetValues(typeof(ExperienceRelated)))

{

relatedExperience.Items.Add(new ListItem(er.ToString(),er.ToString("d")));

}

relatedExperience.Items.Insert(0,"");

}
"Nate" <Na**@discussions.microsoft.com> wrote in message
news:86**********************************@microsof t.com...
This sounds like a bad design approach to even use enums as a basis for
databinding. An easier to code and scalable approach would be to create a
seperate class that provides a method which returns a DataTable which
could
then be bound to..

public class MyClass
{
public static DataTable ListValues()
{
DataTable dt = new DataTable();
// create columns and add rows to datatable
return dt;
}
}

This will be beneficial for future development as well if you decide to
move
the values into a database. The only thing that would need to be changed
would be the innerworkings of MyClass.ListValues(). And... this is much
easier to DataBind to.

"Nicholas Paldino [.NET/C# MVP]" wrote:
CK,

You should be able to call the static GetNames method on the Enum
class
(passing the type of your enumeration), and then bind to the array of
strings that is returned to you.

Also, you might want to cache the string array somewhere, if you are
going to populate this list often. After all, the enumeration (and
therefore the array) is not going to change while the web site is up.

Hope this helps.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com

"CK" <c_**********@hotmail.com> wrote in message
news:h3*******************@newssvr11.news.prodigy. com...
> Hi All,
> Good morning. I had a quick question. I have a public Enum. During page
> load I want to loop thru the Enum and put those as items in an
> asp:dropdownList. Does anyone have any sample code to do this? Like a
> foreach loop.
>
> Thanks for any help,
> CK
>


May 17 '06 #6

P: n/a
Nate wrote:
This sounds like a bad design approach to even use enums as a basis for
databinding. An easier to code and scalable approach would be to create a
seperate class that provides a method which returns a DataTable which could
then be bound to..

I would challenge that "bad design" statement.
It would also be quite unlikely that it would change in a lot (majority)
of cases so you would invest the extra effort of doing the premature
architectural optimisations that would quite likely never be needed.
It also of course adds complexity and additional points of failure.
The Simplest Thing That Could Possibly Work is a good maxim imo.
You can also bind directly to Enum.GetNames(....

<...>

JB
May 18 '06 #7

P: n/a
Hi,
"CK" <c_**********@hotmail.com> wrote in message
news:9X*******************@newssvr29.news.prodigy. net...
Thanks Ignacio, this worked great, but how do i get the Enum values to be
the vlaues of the list items? Thanks again ~CK

Enum.GetValues ?

C'mon a little search in msdn would had give you that ;)
May 18 '06 #8

P: n/a
Hi,

"Nate" <Na**@discussions.microsoft.com> wrote in message
news:86**********************************@microsof t.com...
This sounds like a bad design approach to even use enums as a basis for
databinding. An easier to code and scalable approach would be to create a
seperate class that provides a method which returns a DataTable which
could
then be bound to..


//inverted just in case :)
public enum Xes { Male, Female };
I strongly doubt this enum will change anytime soon :)

--
--
Ignacio Machin,
ignacio.machin AT dot.state.fl.us
Florida Department Of Transportation
May 18 '06 #9

This discussion thread is closed

Replies have been disabled for this discussion.