当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > asp.net 枚举文件里面的数字绑定到DropDownList里面去

ASP.NET
AspNetPager与Socut.Data使用方法
asp.net UpdaeProgress的简单用法
asp.net ajaxControlToolkit ValidatorCalloutExtender的简单用法
asp.net 简易生成注册码(数字+大小写字母)
asp.net中利用ashx实现图片防盗链代码
ASP.NET程序中常用代码汇总
ASP.NET 2.0/3.5中直接操作Gridview控件插入新记录
ASP.NET Ajax级联DropDownList实现代码
ASP.NET 2.0写无限级下拉菜单
asp.net Web Services上传和下载文件(完整代码)
asp.net DataGrid控件中弹出详细信息窗口
Asp.NET 多层登陆实现代码
利用Asp.Net回调机制实现进度条
ASP.NET Ref和Out关键字区别分析
Javascript调用Webservice的多种方法
.Net下的签名与混淆图文分析
.Net Compact Framework开发小技巧 推荐
.Net连接Oracle数据库的实现代码
js获取.aspx页面里面的服务器控件和.ascx中的服务器控件值
asp.net下 jquery jason 高效传输数据

ASP.NET 中的 asp.net 枚举文件里面的数字绑定到DropDownList里面去


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 168 ::
收藏到网摘: n/a

将枚举文件里面的数字绑定到DropDownList里面去的实现方法,大家可以借鉴下。
复制代码 代码如下:

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;
}
}