枚举类型绑定下拉列表
2017-01-17 17:10
411 查看
/// <summary>
/// 根据枚举类型得到其所有的 值 与 枚举定义Description属性 的集合
/// </summary>
/// <param name="enumType"></param>
/// <returns></returns>
public static ArrayList EnumToList(Type enumType)
{
ArrayList list = new ArrayList();
Type typeDescription = typeof(DescriptionAttribute);
System.Reflection.FieldInfo[] fields = enumType.GetFields();
string strText = string.Empty;
string strValue = string.Empty;
foreach (FieldInfo field in fields)
{
if (field.FieldType.IsEnum)
{
strValue = ((int)enumType.InvokeMember(field.Name, BindingFlags.GetField, null, null, null)).ToString();
object[] arr = field.GetCustomAttributes(typeDescription, true);
if (arr.Length > 0)
{
DescriptionAttribute aa = (DescriptionAttribute)arr[0];
strText = aa.Description;
}
else
{
strText = "";
}
ListItem listitem = new ListItem(strText, strValue);
list.Add(listitem);
}
}
return list;
}
枚举
public enum ReceivWay
{
/// <summary>
/// 满期领取
/// </summary>
[Description("满期领取")]
ExpiryDate = 0,
/// <summary>
/// 按月领取
/// </summary>
[Description("按月领取")]
MonthlyBasis = 1
}
后台代码
public static ArrayList lqfs;//领取方式
lqfs = EnumHelper.EnumToList(typeof(ReceivWay));
前台绑定
<%for (int i = 0; i < lqfs.Count; i++)
{ %>
<a class="Receiving-way" style="cursor: pointer;" name="<%=i %>"><%=lqfs[i].ToString() %>-利率</a>
<%} %>
/// <summary>
/// 通过值获取文字描述
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="value"></param>
/// <returns></returns>
public static string GetDescription<T>(int value)
{
try
{
Type type = typeof(DescriptionAttribute);
string t = GetEnum<T>(value).ToString();
FieldInfo fi = typeof(T).GetField(t);
DescriptionAttribute[] arr = fi.GetCustomAttributes(type, true) as DescriptionAttribute[];
return arr == null ? "" : arr[0].Description;
}
catch (Exception)
{
return "";
}
}
/// <summary>
/// 根据数据值获取枚举类型
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="value"></param>
/// <returns></returns>
public static T GetEnum<T>(int value)
{
return (T)Enum.Parse(typeof(T), value.ToString(), true);
}
/// 根据枚举类型得到其所有的 值 与 枚举定义Description属性 的集合
/// </summary>
/// <param name="enumType"></param>
/// <returns></returns>
public static ArrayList EnumToList(Type enumType)
{
ArrayList list = new ArrayList();
Type typeDescription = typeof(DescriptionAttribute);
System.Reflection.FieldInfo[] fields = enumType.GetFields();
string strText = string.Empty;
string strValue = string.Empty;
foreach (FieldInfo field in fields)
{
if (field.FieldType.IsEnum)
{
strValue = ((int)enumType.InvokeMember(field.Name, BindingFlags.GetField, null, null, null)).ToString();
object[] arr = field.GetCustomAttributes(typeDescription, true);
if (arr.Length > 0)
{
DescriptionAttribute aa = (DescriptionAttribute)arr[0];
strText = aa.Description;
}
else
{
strText = "";
}
ListItem listitem = new ListItem(strText, strValue);
list.Add(listitem);
}
}
return list;
}
枚举
public enum ReceivWay
{
/// <summary>
/// 满期领取
/// </summary>
[Description("满期领取")]
ExpiryDate = 0,
/// <summary>
/// 按月领取
/// </summary>
[Description("按月领取")]
MonthlyBasis = 1
}
后台代码
public static ArrayList lqfs;//领取方式
lqfs = EnumHelper.EnumToList(typeof(ReceivWay));
前台绑定
<%for (int i = 0; i < lqfs.Count; i++)
{ %>
<a class="Receiving-way" style="cursor: pointer;" name="<%=i %>"><%=lqfs[i].ToString() %>-利率</a>
<%} %>
/// <summary>
/// 通过值获取文字描述
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="value"></param>
/// <returns></returns>
public static string GetDescription<T>(int value)
{
try
{
Type type = typeof(DescriptionAttribute);
string t = GetEnum<T>(value).ToString();
FieldInfo fi = typeof(T).GetField(t);
DescriptionAttribute[] arr = fi.GetCustomAttributes(type, true) as DescriptionAttribute[];
return arr == null ? "" : arr[0].Description;
}
catch (Exception)
{
return "";
}
}
/// <summary>
/// 根据数据值获取枚举类型
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="value"></param>
/// <returns></returns>
public static T GetEnum<T>(int value)
{
return (T)Enum.Parse(typeof(T), value.ToString(), true);
}
相关文章推荐
- MVC中将枚举类型绑定到下拉列表
- MVC 中将枚举类型绑定到下拉列表
- C#枚举类型绑定下拉列表框
- 将枚举的键值绑定到下拉列表框
- 下拉列表绑定枚举
- 利用发射 下拉列表绑定枚举
- MVC中将枚举类型数据应用到下拉列表中的方法
- net core 使用tagHelper将 enum枚举类型转换为下拉列表select
- asp.net中将枚举绑定到下拉列表
- 将一个枚举类型动态绑定到一个列表控件的方法
- 三级下拉列表的修改时无法绑定原始数据解决办法
- 相于Repeater中使用绑定下拉列表一事
- 如何将sharepoint列表中choice类型的值绑定到dropdownlist上
- 可输入的下拉列表 支持dropdownlist的数据源绑定
- SharePoint中的EventReceiver 之二 绑定Event Receiver到列表类型或列表实例
- c# winform comboBox动态下拉列表,comboBox动态绑定数据库里的数据
- 实现树形下拉列表 GridView数据绑定
- 陈述如何将sharepoint列表中choice类型的值绑定到dropdownlist上
- dropdownlist 下拉列表绑定再添加数据项
- MOSS 2010:Visual Studio 2010开发体验(31)——如何给列表绑定多个内容类型