asp.net 枚舉文件里面的數(shù)字綁定到DropDownList里面去
更新時(shí)間:2009年07月18日 12:36:05 作者:
將枚舉文件里面的數(shù)字綁定到DropDownList里面去的實(shí)現(xiàn)方法,大家可以借鑒下。
復(fù)制代碼 代碼如下:
public class AppEnum
{
public enum PointLogType : int
{
/// <summary>
/// Email確認(rèn)
/// </summary>
[Description("Email確認(rèn)")]
Recruit = 1, //新客戶激活+
/// <summary>
/// 老客戶回饋
/// </summary>
[Description("老客戶回饋")]
Veteran = 2, //老客戶購物歷史回復(fù)
/// <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>
/// 積分轉(zhuǎn)移
/// </summary>
[Description("積分轉(zhuǎn)移")]
TransferPoint = 10, //積分轉(zhuǎn)移
/// <summary>
/// 購物得分
/// </summary>
[Description("購物得分")]
AddPointLater = 11, //滯后加分
/// <summary>
/// 訂單修改
/// </summary>
[Description("訂單修改")]
UpdateSO = 12, //修改SaleOrder
/// <summary>
/// 批發(fā)扣除
/// </summary>
[Description("批發(fā)扣除")]
WholeSale = 13, //批發(fā)減分-, 好象沒有使用。
/// <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系統(tǒng),沒有用起來。
/// <summary>
/// 系統(tǒng)轉(zhuǎn)移積分
/// </summary>
[Description("系統(tǒng)轉(zhuǎn)移積分")]
SysTransferPoint = 19, //系統(tǒng)帳號neweggcs轉(zhuǎn)移積分給客戶
/// <summary>
/// 系統(tǒng)帳號增加積分
/// </summary>
[Description("系統(tǒng)帳號增加積分")]
AddPointToSysAccounts = 20, //財(cái)務(wù)給系統(tǒng)帳號增加積分
/// <summary>
/// 參加競猜
/// </summary>
[Description("參加競猜")]
BetReductPoint = 21, //下注使用積分
/// <summary>
/// 競猜所得
/// </summary>
[Description("競猜所得")]
BetAddPoint = 22, //開獎(jiǎng)得積分
/// <summary>
/// 新用戶第一次購物贈送積分
/// </summary>
[Description("新用戶第一次購物贈送積分")]
NewCustomerFirstBuy = 23, //新注冊用戶,第一次購物送積分
/// <summary>
/// 自動提升精華贈送積分
/// </summary>
[Description("自動提升精華贈送積分")]
SetScoreAuto = 24, //自動提升精華贈送積分
/// <summary>
/// 市場促銷活動增送積分
/// </summary>
[Description("市場促銷活動增送積分")]
MKTCampaign = 25,
/// <summary>
/// 到期回收積分
/// </summary>
[Description("到期回收積分")]
DisusePoint = -1
}
}
上面是一個(gè)枚舉列表,怎么去讀取呢?用一個(gè)DDR來綁定呢?
復(fù)制代碼 代碼如下:
ddlType.DisplayMember = "Value";
ddlType.ValueMember = "Key";
ddlType.DataSource = CommonFunctions.GetEnumItems(typeof(AppEnum.PointLogType), false);
ddlType.SelectedValue = 25; // 默認(rèn)值
下面是CommonFunctions里面的GetEnumItems方法:
復(fù)制代碼 代碼如下:
/// <summary>
/// 獲得枚舉類型所包含的全部項(xiàng)的列表。
/// </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 選項(xiàng)
if (withAll == true)
list.Add(new EnumItem(AppConst.IntNull, "All"));
// 獲得特性Description的類型信息
Type typeDescription = typeof(DescriptionAttribute);
// 獲得枚舉的字段信息(因?yàn)槊杜e的值實(shí)際上是一個(gè)static的字段的值)
System.Reflection.FieldInfo[] fields = enumType.GetFields();
// 檢索所有字段
foreach (FieldInfo field in fields)
{
// 過濾掉一個(gè)不是枚舉值的,記錄的是枚舉的源類型
if (field.FieldType.IsEnum == false)
continue;
// 通過字段的名字得到枚舉的值
int value = (int)enumType.InvokeMember(field.Name, BindingFlags.GetField, null, null, null);
string text = string.Empty;
// 獲得這個(gè)字段的所有自定義特性,這里只查找Description特性
object[] arr = field.GetCustomAttributes(typeDescription, true);
if (arr.Length > 0)
{
// 因?yàn)镈escription自定義特性不允許重復(fù),所以只取第一個(gè)
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;
}
}
相關(guān)文章
Aspose.Cells 讀取受保護(hù)有密碼的Excel文件
這篇文章主要介紹了Aspose.Cells 讀取受保護(hù)有密碼的Excel文件,簡單實(shí)用,需要的朋友可以參考下。2016-06-06
.NET實(shí)現(xiàn)WebSocket服務(wù)端即時(shí)通信實(shí)例
本篇文章主要介紹了.NET實(shí)現(xiàn)即時(shí)通信,WebSocket服務(wù)端實(shí)例 ,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02
.NET的file文件上傳控件使用方法 修改web.config文件上傳大文件
這篇文章主要介紹了.NET修改web.config文件上傳大文件的方法,大家參考使用吧2014-01-01
詳解.NET中的加密算法總結(jié)(自定義加密Helper類續(xù))
這篇文章主要介紹了詳解.NET中的加密算法總結(jié)(自定義加密Helper類續(xù)) ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2016-12-12
如何取得Repeater控件選擇的項(xiàng)目及注意事項(xiàng)
Repeater控件,每個(gè)item前有一個(gè)CheckBox,把選擇的item列顯出來,有兩個(gè)地方需要注意的,就是CheckBox與Label,這個(gè)Label是隨你需要獲取的內(nèi)容而變化喔。如你想獲取Nickname,那你需要把綁定的的內(nèi)容放在Label上2013-01-01
win2003服務(wù)器asp.net權(quán)限設(shè)置問題及解決方法
ASP.NET相對于ASP,設(shè)置權(quán)限方面有點(diǎn)不同,有一點(diǎn)兒設(shè)置錯(cuò)了都運(yùn)行不到。在網(wǎng)上搜索到的都是很垃圾的答案,沒有一個(gè)用得到的,下面是我自己設(shè)置并從中遇到的問題摸索后得到的經(jīng)驗(yàn),給大家分享。2011-08-08

