| public class AppEnum
 {
 public enum PointLogType : int
 {
 /// <summary>
 /// Email确认
 /// </summary>
 [Description("Email确认")]
 Recruit = 1, //新客户激活+
 /// <summary>
 /// 老客户回馈
 /// </summary>
 [Description("老客户回馈")]
 Veteran = 2, //老客户购物历史回复
 /// <summary>
 /// 生成订单
 /// </summary>
 [Description("生成订单")]
 CreateOrder = 3, //下订单-
 /// <summary>
 /// 作废订单
 /// </summary>
 [Description("作废订单")]
 AbandonSO = 5, //作废订单
 /// <summary>
 /// 作废订单取消
 /// </summary>
 [Description("作废订单取消")]
 CancelAbandonSO = 6, //审核作废取消-
 /// <summary>
 /// 退货
 /// </summary>
 [Description("退货")]
 ReturnProduct = 7, //退货-
 /// <summary>
 /// 取消退货
 /// </summary>
 [Description("取消退货")]
 CancelReturn = 8,
 /// <summary>
 /// 取消出库
 /// </summary>
 [Description("取消出库")]
 CancelOutstock = 9, //取消出货
 /// <summary>
 /// 积分转移
 /// </summary>
 [Description("积分转移")]
 TransferPoint = 10, //积分转移
 /// <summary>
 /// 购物得分
 /// </summary>
 [Description("购物得分")]
 AddPointLater = 11, //滞后加分
 /// <summary>
 /// 订单修改
 /// </summary>
 [Description("订单修改")]
 UpdateSO = 12, //修改SaleOrder
 /// <summary>
 /// 批发扣除
 /// </summary>
 [Description("批发扣除")]
 WholeSale = 13, //批发减分-, 好象没有使用。
 /// <summary>
 /// 买卡
 /// </summary>
 [Description("买卡")]
 InfoProduct = 14, //买卡减分-
 /// <summary>
 /// 其他
 /// </summary>
 [Description("其他")]
 BizRequest = 15, //Request
 /// <summary>
 /// 商品评论送积分
 /// </summary>
 [Description("商品评论送积分")]
 Remark = 16, //Remark
 /// <summary>
 /// 注册送积分
 /// </summary>
 [Description("注册送积分")]
 NewRegister = 17, //注册送积分
 /// <summary>
 /// DIY活动积分增减
 /// </summary>
 [Description("DIY活动积分增减")]
 DIY = 18, //DIY活动积分增减, 成都DIY系统,没有用起来。
 /// <summary>
 /// 系统转移积分
 /// </summary>
 [Description("系统转移积分")]
 SysTransferPoint = 19, //系统帐号neweggcs转移积分给客户
 /// <summary>
 /// 系统帐号增加积分
 /// </summary>
 [Description("系统帐号增加积分")]
 AddPointToSysAccounts = 20, //财务给系统帐号增加积分
 /// <summary>
 /// 参加竞猜
 /// </summary>
 [Description("参加竞猜")]
 BetReductPoint = 21, //下注使用积分
 /// <summary>
 /// 竞猜所得
 /// </summary>
 [Description("竞猜所得")]
 BetAddPoint = 22, //开奖得积分
 /// <summary>
 /// 新用户第一次购物赠送积分
 /// </summary>
 [Description("新用户第一次购物赠送积分")]
 NewCustomerFirstBuy = 23, //新注册用户,第一次购物送积分
 /// <summary>
 /// 自动提升精华赠送积分
 /// </summary>
 [Description("自动提升精华赠送积分")]
 SetScoreAuto = 24, //自动提升精华赠送积分
 /// <summary>
 /// 市场促销活动增送积分
 /// </summary>
 [Description("市场促销活动增送积分")]
 MKTCampaign = 25,
 /// <summary>
 /// 到期回收积分
 /// </summary>
 [Description("到期回收积分")]
 DisusePoint = -1
 }
 }
 
 上面是一个枚举列表,怎么去读取呢?用一个DDR来绑定呢?
 
 复制代码 代码如下: ddlType.DisplayMember = "Value";
 ddlType.ValueMember = "Key";
 ddlType.DataSource = CommonFunctions.GetEnumItems(typeof(AppEnum.PointLogType), false);
 ddlType.SelectedValue = 25; // 默认值
 
 下面是CommonFunctions里面的GetEnumItems方法:
 
 复制代码 代码如下: /// <summary>
 /// 获得枚举类型所包含的全部项的列表。
 /// </summary>
 /// <param>枚举的类型</param>
 /// <param>是否包含"All"</param>
 /// <returns></returns>
 public static List<EnumItem> GetEnumItems(Type enumType, bool withAll)
 {
 List<EnumItem> list = new List<EnumItem>();
 
 if (enumType.IsEnum != true)
 {
 // 不是枚举类型
 throw new InvalidOperationException();
 }
 
 // 包含 All 选项
 if (withAll == true)
 list.Add(new EnumItem(AppConst.IntNull, "All"));
 
 // 获得特性Description的类型信息
 Type typeDescription = typeof(DescriptionAttribute);
 
 // 获得枚举的字段信息(因为枚举的值实际上是一个static的字段的值)
 System.Reflection.FieldInfo[] fields = enumType.GetFields();
 
 // 检索所有字段
 foreach (FieldInfo field in fields)
 {
 // 过滤掉一个不是枚举值的,记录的是枚举的源类型
 if (field.FieldType.IsEnum == false)
 continue;
 
 // 通过字段的名字得到枚举的值
 int value = (int)enumType.InvokeMember(field.Name, BindingFlags.GetField, null, null, null);
 string text = string.Empty;
 
 // 获得这个字段的所有自定义特性,这里只查找Description特性
 object[] arr = field.GetCustomAttributes(typeDescription, true);
 if (arr.Length > 0)
 {
 // 因为Description自定义特性不允许重复,所以只取第一个
 DescriptionAttribute aa = (DescriptionAttribute)arr[0];
 
 // 获得特性的描述值
 text = aa.Description;
 }
 else
 {
 // 如果没有特性描述,那么就显示英文的字段名
 text = field.Name;
 }
 list.Add(new EnumItem(value, text));
 }
 
 return list;
 }
 public class EnumItem
 {
 private object m_key;
 private object m_value;
 
 public object Key
 {
 get { return m_key; }
 set { m_key = value; }
 }
 
 public object Value
 {
 get { return m_value; }
 set { m_value = value; }
 }
 
 public EnumItem(object _key, object _value)
 {
 m_key = _key;
 m_value = _value;
 }
 }
 
 (编辑:宣城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |