/// <summary>
/// 把枚举转化成为数据源
/// </summary>
public class EnumToDataSource
{
private string dataKey = string.Empty;
private int dataValue = -1;
private static List<EnumToDataSource> listEnumDataSource = null;
/// <summary>
/// 数据源的Key值
/// </summary>
public string DataKey
{
get { return dataKey; }
}
/// <summary>
/// 数据源的值
/// </summary>
public int DataValue
{
get { return dataValue; }
}
public EnumToDataSource(string key, int value)
{
if (null == listEnumDataSource)
{
listEnumDataSource = new List<EnumToDataSource>();
}
this.dataKey = key;
this.dataValue = value;
//listEnumDataSource.Add(this);
}
public EnumToDataSource()
{
}
/// <summary>
/// 把枚举转化为数据源
/// </summary>
/// <param name="dataEnum">枚举类型</param>
/// <returns>数据列表</returns>
public static List<EnumToDataSource> GetDatasource(Type type)
{
string[] dataKeys = Enum.GetNames(type);
Array dataValues = Enum.GetValues(type);
if (null == listEnumDataSource)
{
listEnumDataSource = new List<EnumToDataSource>();
}
listEnumDataSource.Clear();
for (int i = 0; i < dataValues.Length; i++)
{
EnumToDataSource ets = new EnumToDataSource(dataKeys[i],Convert.ToInt32(dataValues.GetValue(i)));
listEnumDataSource.Add(ets);
}
return listEnumDataSource;
}
}
/********************************用法很简单**************************/
ddlType.DataSource = EnumToDataSource.GetDatasource(typeof(枚举类型名));
ddlType.DataTextField = "DataKey";
ddlType.DataValueField = "DataValue";
ddlType.DataBind();
/*********************************OK 了****************************/