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; } }
(编辑:成都站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|