asp.net 枚举文件里面的数字绑定到DropDownList里面去_asp.net教程-查字典教程网
asp.net 枚举文件里面的数字绑定到DropDownList里面去
asp.net 枚举文件里面的数字绑定到DropDownList里面去
发布时间:2016-12-29 来源:查字典编辑
摘要:复制代码代码如下:publicclassAppEnum{publicenumPointLogType:int{//////Email确认//...

复制代码 代码如下:

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 name="enumType">枚举的类型</param>

/// <param name="withAll">是否包含"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;

}

}

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新asp.net教程学习
    热门asp.net教程学习
    编程开发子分类