1.要有一个枚举,此例为GameEasyType,注意[Description()]必须加上
2.需要一个枚举转换成字典的处理类TransEnum
//
转换类
using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
using System.ComponentModel;
namespace DuwCompontents
... {
public class TransEnum
...{
public TransEnum(Enum e)...{
}
public static Dictionary<string, string> Trans(Type type) ...{
Dictionary<string, string> dic = new Dictionary<string, string>();
if (type.IsEnum)
...{
FieldInfo[] fis = type.GetFields(BindingFlags.Static | BindingFlags.Public);
foreach (FieldInfo fi in fis)
...{
object[] objs = fi.GetCustomAttributes(typeof(DescriptionAttribute), false);
if (objs.Length > 0)
...{
dic.Add(fi.Name, (objs[0] as DescriptionAttribute).Description);
}
else
...{
dic.Add(fi.Name, fi.Name);
}
}
}
return dic;
}
public static Dictionary<int, string> IntTrans(Type type)
...{
Dictionary<int, string> dic = new Dictionary<int, string>();
if (type.IsEnum)
...{
FieldInfo[] fis = type.GetFields(BindingFlags.Static | BindingFlags.Public);
foreach (FieldInfo fi in fis)
...{
object[] objs = fi.GetCustomAttributes(typeof(DescriptionAttribute), false);
if (objs.Length > 0)
...{
dic.Add((int)Enum.Parse(type,fi.Name), (objs[0] as DescriptionAttribute).Description);
}
else
...{
dic.Add((int)Enum.Parse(type, fi.Name), fi.Name);
}
}
}
return dic;
}
}
}
// 枚举类
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
namespace DuwDb
... {
public enum GameEasyType
...{
/**//// <summary>
/// 不使用
/// </summary>
[Description("全部")]
Nonuse = -1,
/**//// <summary>
/// 简单
/// </summary>
[Description("简单")]
Easy=0,
/**//// <summary>
/// 普通
/// </summary>
[Description("普通")]
Common = 1 ,
/**//// <summary>
/// 困难
/// </summary>
[Description("困难")]
Difficile=2
}
}
// 实现类
using System;
using System.Collections.Generic;
using System.Text;
using System.Web.UI.WebControls;
using DuwDb;
namespace DuwControls
... {
public class GameDefault:SkinedControl
...{
private Repeater repEasy;//难易程度单选框
protected override void AttachChildControls()
...{
repEasy = base.FindControl("repEasy") as Repeater;
System.Collections.Generic.Dictionary<int, string> dic = DuwCompontents.TransEnum.IntTrans(typeof(DuwDb.GameEasyType));
repEasy.DataSource = dic;
repEasy.ItemDataBound += new RepeaterItemEventHandler(repEasy_ItemDataBound);
repEasy.DataBind();
}
//绑定难易分类
void repEasy_ItemDataBound(object sender, RepeaterItemEventArgs e)
...{
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
...{
KeyValuePair<int, string> pair = (KeyValuePair<int, string>)e.Item.DataItem;
Literal litEasy = e.Item.FindControl("litEasy") as Literal;
litEasy.Text = pair.Value;
}
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
using System.ComponentModel;
namespace DuwCompontents
... {
public class TransEnum
...{
public TransEnum(Enum e)...{
}
public static Dictionary<string, string> Trans(Type type) ...{
Dictionary<string, string> dic = new Dictionary<string, string>();
if (type.IsEnum)
...{
FieldInfo[] fis = type.GetFields(BindingFlags.Static | BindingFlags.Public);
foreach (FieldInfo fi in fis)
...{
object[] objs = fi.GetCustomAttributes(typeof(DescriptionAttribute), false);
if (objs.Length > 0)
...{
dic.Add(fi.Name, (objs[0] as DescriptionAttribute).Description);
}
else
...{
dic.Add(fi.Name, fi.Name);
}
}
}
return dic;
}
public static Dictionary<int, string> IntTrans(Type type)
...{
Dictionary<int, string> dic = new Dictionary<int, string>();
if (type.IsEnum)
...{
FieldInfo[] fis = type.GetFields(BindingFlags.Static | BindingFlags.Public);
foreach (FieldInfo fi in fis)
...{
object[] objs = fi.GetCustomAttributes(typeof(DescriptionAttribute), false);
if (objs.Length > 0)
...{
dic.Add((int)Enum.Parse(type,fi.Name), (objs[0] as DescriptionAttribute).Description);
}
else
...{
dic.Add((int)Enum.Parse(type, fi.Name), fi.Name);
}
}
}
return dic;
}
}
}
// 枚举类
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
namespace DuwDb
... {
public enum GameEasyType
...{
/**//// <summary>
/// 不使用
/// </summary>
[Description("全部")]
Nonuse = -1,
/**//// <summary>
/// 简单
/// </summary>
[Description("简单")]
Easy=0,
/**//// <summary>
/// 普通
/// </summary>
[Description("普通")]
Common = 1 ,
/**//// <summary>
/// 困难
/// </summary>
[Description("困难")]
Difficile=2
}
}
// 实现类
using System;
using System.Collections.Generic;
using System.Text;
using System.Web.UI.WebControls;
using DuwDb;
namespace DuwControls
... {
public class GameDefault:SkinedControl
...{
private Repeater repEasy;//难易程度单选框
protected override void AttachChildControls()
...{
repEasy = base.FindControl("repEasy") as Repeater;
System.Collections.Generic.Dictionary<int, string> dic = DuwCompontents.TransEnum.IntTrans(typeof(DuwDb.GameEasyType));
repEasy.DataSource = dic;
repEasy.ItemDataBound += new RepeaterItemEventHandler(repEasy_ItemDataBound);
repEasy.DataBind();
}
//绑定难易分类
void repEasy_ItemDataBound(object sender, RepeaterItemEventArgs e)
...{
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
...{
KeyValuePair<int, string> pair = (KeyValuePair<int, string>)e.Item.DataItem;
Literal litEasy = e.Item.FindControl("litEasy") as Literal;
litEasy.Text = pair.Value;
}
}
}
}