枚举定义:
public enum AlbumType
{
人物肖像,
风景名胜,
动物植物,
娱乐休闲,
科技时尚,
节日聚会,
静态建筑,
社会纪实,
体育活动,
五花八门,
}
一、直接将枚举的所有值转换成一个List<string>,然后就可以绑定到DropDownList控件上。
代码示例:
List<string> a = Enum.GetNames(typeof(AlbumType)).ToList<string>();
DropDownList1.DataSource = a;
DropDownList1.DataBind();
这个方法比较简单,简洁!如果想将选中的枚举值转换成int型的话,只需要用SelectedIndex就可以获取了,很方便!但是有的时候要向下拉框中添加一个所有相册类型的选择,这时就会比较麻烦了,不过用刚才的方法还是可以实现的,下面就举个例子:
List<string> a = new List<string>();
a.Add("所有类型");
a.AddRange(Enum.GetNames(typeof(AlbumType)).ToList<string>());
List<string> a = new List<string>();
a.Add("所有类型");
a.AddRange(Enum.GetNames(typeof(AlbumType)).ToList<string>());
DropDownList1.DataSource = a;
DropDownList1.DataBind();
这样只需要将获得的SelectedIndex减去1就是选中枚举值转换成int型的结果(程序中将“所有类型”认为是-1),这样就实现了刚才的需要!
二、刚才第一种方法虽然实现了基本的功能,不过还可以使用List<ListItem>来实现,下面也举一个例子:
List<ListItem> albumType = new List<ListItem>();
albumType.Add(new ListItem("所有类型", "-1"));
foreach(AlbumType type in Enum.GetValues(typeof(AlbumType)))
{
albumType.Add(new ListItem(type.ToString(), ((int)type).ToString()));
}
DropDownList1.DataSource = albumType;
DropDownList1.DataTextField = "text";
DropDownList1.DataValueField = "value";
DropDownList1.DataBind();
这样实现的话,就不用像前面的方法那样对不上枚举中的值一定要将其认为的-1,这样实现的话使用SelectedValue就是其枚举转换成int型的结果(注意此处为string类型)。
本文作者:网友 来源:网络
CIO之家 www.ciozj.com 微信公众号:imciow