zoukankan      html  css  js  c++  java
  • 转贴:C# 枚举绑定到ComboBox

    方法一:

    绑定

    enum TestEnum {zero=0,one=1,two=2}       
    ComboBox cbo = new ComboBox();
    cbo.DataSource = System.Enum.GetNames(typeof(TestEnum));

    TestEnum  test = TestEnum .one;

    cbo.SelectedIndex = this.cbo.FindString(test.ToString());

    取值

    TestEnum testenum = (TestEnum)Enum.Parse(typeof(TestEnum) ,cbo.SelectedItem.ToString() ,false)

    方法二:

    foreach (var v in typeof(AA).GetFields())
    {
         if (v.FieldType.IsEnum == true)
         {
              this.comboBox1.Items.Add(v.Name);
          }
    }

    this.comboBox1.SelectedIndex = 1;

    方法三:

    反射,枚举,绑定下拉框

    public static class EnumManager<TEnum>
    {
        private static DataTable GetDataTable()
        {
           Type enumType = typeof(TEnum); // 获取类型对象
           FieldInfo[] enumFields = enumType.GetFields();    //获取字段信息对象集合

           DataTable table = new DataTable();
           table.Columns.Add("Name", Type.GetType("System.String"));
           table.Columns.Add("Value", Type.GetType("System.Int32"));
           //遍历集合
           foreach (FieldInfo field in enumFields)
           {
               if (!field.IsSpecialName)
               {
                   DataRow row = table.NewRow();
                  row[0] = field.Name;   // 获取字段文本值
                  row[1] = Convert.ToInt32(field.GetRawConstantValue());        // 获取int数值
                  //row[1] = (int)Enum.Parse(enumType, field.Name); 也可以这样

                  table.Rows.Add(row);
               }
           }
           return table;
        }

        public static void SetListControl(ListControl list)
        {
           list.DataSource = GetDataTable();
           list.DataTextField = "Name";
           list.DataValueField = "Value";
           list.DataBind();
        }
    }


    public enum BookingStatus {
        未提交 = 1,
        已提交,
        已取消,
        已完成 = 6
    }

    EnumManager<BookingStauts>.SetListControl(ddlBookingStatus);
    EnumManager<TicketStatus>.SetListControl(rblTicketStatus);

  • 相关阅读:
    [CTSC2017]吉夫特(Lucas定理,DP)
    [CTSC2017]游戏(Bayes定理,线段树)
    [BZOJ3551][ONTAK2010]Peaks(加强版)(Kruskal重构树,主席树)
    [BZOJ4337][BJOI2015]树的同构(树的最小表示法)
    [BZOJ3786]星系探索(伪ETT)
    [CTSC2017]密钥
    PKUSC2018训练日程(4.18~5.30)
    [NOI2016]优秀的拆分
    [SDOI2008]Sandy的卡片
    [JSOI2007]字符加密
  • 原文地址:https://www.cnblogs.com/litsword/p/1760480.html
Copyright © 2011-2022 走看看