Don't think you are, know you are

博客园 首页 新随笔 管理



枚举是非常有用的类型,我觉得使用枚举关键是做到: 枚举的值如果以后发生变化,务必保证我们只需要改动最少的地方,最好只改动一处。

假设有枚举类型

 public enum moneyEnum
    {
        人民币=1,
        美元=2,
        港元=3,
        欧元=4
    }

注意,.net中可以使用中文,这就方便多了

1. 动态邦定到DropDownList上

可以如下做:

public Class1
 {
  public static DataTable getMoneyUnits()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("text");
            dt.Columns.Add("value");
            foreach (moneyEnum item in Enum.GetValues(typeof(moneyEnum)))
            {
                DataRow dr = dt.NewRow();
                dr["text"] = item.ToString();
                dr["value"] = (int)item;
                dt.Rows.Add(dr);
            }
            return dt;
        }
}
               
 protected void Page_Load(object sender, EventArgs e)
    {
         if (!IsPostBack)
            {
              Datatable dt =Class1.getMoneyUnits();
               DropDownList1.DataTextField = dt.Columns["text"].ToString();
                DropDownList1.DataValueField = dt.Columns["value"].ToString();
             }
}


2. 动态的显示
   数据库表中存储的枚举值只是一个数字,如何动态的显示呢:
   
     TextBox1.Text = ((moneyEnum)int.Parse(dr["fundUnit"].ToString())).ToString() ;

注意到第一个问题中的 dr["value"] = (int)item;
就是说我们可以对枚举值和对应的整数间进行任意的强制转换,以满足我们的需要。

上面的代码在枚举值发生变化时,比如新增了货币单位,都不用改动。



posted on 2006-09-26 14:43  炭炭  阅读(460)  评论(1编辑  收藏  举报