C#两种方法实现将枚举类型中的所有值绑定到DropDownList控件上

枚举定义:

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类型)。

以上两种方法各有优势,推荐使用第一种方法,更简洁一点!

转载于:https://www.cnblogs.com/steel1990/archive/2010/04/10/steel1990_DropDownList.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值