首页  ·  知识 ·  云计算
实现将枚举类型中的所有值绑定到DropDownList控件上
网友    综合  编辑:dezai   图片来源:网络
果想将选中的枚举值转换成int型的话,只需要用SelectedIndex就可以获取了,很方便!但是有的时候要向下拉框中添加一个所有相册类型的选择,这时就会比较麻
 枚举定义:

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
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读