利用枚举展示下拉列表
来源:互联网 发布:淘宝卖水果需要什么 编辑:程序博客网 时间:2024/05/21 09:10
有时候我们想展示展示一个下拉列表,但又不想从数据库调用。这时我们可以通过枚举值来实现。View CodeView Code
EnumHelper.cs
using System;using System.Collections;using System.Reflection;using System.Web.UI.WebControls;public class EnumHelper : System.Attribute{ private string _Author = string.Empty; private string _Description = string.Empty; private string _Url = string.Empty; /// <summary> /// 构造方法 /// </summary> public EnumHelper() { } /// <summary> /// 构造方法 /// </summary> /// <param name="description">描述</param> public EnumHelper(string description) { _Description = description; } /// <summary> /// 构造方法 /// </summary> /// <param name="author">作者</param> /// <param name="description">描述</param> /// <param name="url">相关的Url</param> public EnumHelper(string author, string description, string url) { _Author = author; _Description = description; _Url = url; } /// <summary> /// 描述作者 /// </summary> public string Author { get { return _Author; } set { _Author = value; } } /// <summary> /// 描述 /// </summary> public string Description { get { return _Description; } set { _Description = value; } } /// <summary> /// 相关的Url /// </summary> public string Url { get { return _Url; } set { _Url = value; } } /// <summary> /// 得到某一个枚举项的RemarkAttribute /// </summary> /// <param name="en">枚举项</param> /// <returns>RemarkAttribute对象</returns> private EnumHelper GetRemarkAttributeFromEnumItem(System.Enum en) { Type type = en.GetType(); FieldInfo f = type.GetField(en.ToString()); EnumHelper ra = (EnumHelper)Attribute.GetCustomAttribute(f, typeof(EnumHelper)); return ra; } /// <summary> /// 得到某一个枚举项的Remark描述 /// </summary> /// <param name="en">枚举项</param> /// <returns>Remark的描述</returns> private string GetRemarkStringFromEnumItem(System.Enum en) { EnumHelper ra = GetRemarkAttributeFromEnumItem(en); string strDesp = string.Empty; if (ra != null) strDesp = ra.Description; else strDesp = en.ToString(); return strDesp; } /// <summary> /// 根据当前枚举值获取Remark值 /// </summary> /// <param name="enumType">类型</param> /// <param name="enumValue">值</param> /// <returns></returns> public string GetEnumName(Type enumType, string enumValue) { return GetRemarkStringFromEnumItem( (Enum)Enum.Parse(enumType, enumValue)); } #region 使用枚举说明来填充下拉列表 /// <summary> /// 使用枚举说明来填充下拉列表。 /// </summary> /// <param name="ddl">下拉列表控件。</param> /// <param name="enumType"></param> public void SetEnumDropDownList(DropDownList ddl, Type enumType) { string[] nameList = Enum.GetNames(enumType); Array valueList = Enum.GetValues(enumType); for (int i = 0; i < nameList.Length; i++) { string typeName = GetRemarkStringFromEnumItem( (Enum)Enum.Parse(enumType, nameList[i])); string typeValue = ((int)((IList)valueList)[i]).ToString(); ddl.Items.Add(new ListItem(typeName, typeValue)); } } /// <summary> /// 使用枚举说明来填充下拉列表。 /// </summary> /// <param name="enumType"></param> /// <param name="notShow">不显示的项的编号</param> public string SetEnumSelect(Type enumType, string notShow = "") { string selectList = string.Empty; string[] nameList = Enum.GetNames(enumType); Array valueList = Enum.GetValues(enumType); for (int i = 0; i < nameList.Length; i++) { string typeName = GetRemarkStringFromEnumItem( (Enum)Enum.Parse(enumType, nameList[i])); string typeValue = ((int)((IList)valueList)[i]).ToString(); if (notShow != "") { string[] not = notShow.Split(','); if (!((IList)not).Contains(typeValue)) { selectList += " <option value='" + typeValue + "'>" + typeName + "</option>"; } } else { selectList += " <option value='" + typeValue + "'>" + typeName + "</option>"; } } return selectList; } public string GetEnumList(Type enumType) { string[] nameList = Enum.GetNames(enumType); string html = string.Empty; for (int i = 0; i < nameList.Length; i++) { if (html.Length > 0) { html += "," + GetRemarkStringFromEnumItem( (Enum)Enum.Parse(enumType, nameList[i])); } else { html = GetRemarkStringFromEnumItem( (Enum)Enum.Parse(enumType, nameList[i])); } } return html; } #endregion}
CityEnum.cs
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Test.Common.Enum{ public enum CityEnum { /// <summary> /// 石家庄 /// </summary> [EnumHelper("石家庄")] ShiJiaZhuang=0, /// <summary> /// 保定 /// </summary> [EnumHelper("保定")] BaoDing=1, /// <summary> /// 沧州 /// </summary> [EnumHelper("沧州")] CangZhou=2 }}
阅读全文
0 0
- 利用枚举展示下拉列表
- 枚举类型绑定下拉列表
- 下拉列表数据展示和导出
- 利用反射绑定下拉列表
- C#枚举类型绑定下拉列表框
- 利用Listview实现程序列表展示
- jsp下拉框展示枚举定义的信息,java下拉框定义枚举赋值
- 展示医院科室的下拉列表(连接数据库数据)
- js 实现下拉列表的重复利用
- 利用jquery操作select下拉列表框
- 利用jquery判断下拉列表的操作
- 利用jquery操作select下拉列表框
- 利用jquery操作select下拉列表框
- NGUI中利用UIGrid实现下拉列表
- 利用session生成bootstrap下拉列表
- EAS 通过枚举设置下拉列表获取下拉列表的值
- MVC 中将枚举类型绑定到下拉列表
- 在Datagridview控件利用下拉菜单进行枚举数据输入
- 动态生成验证码———MVC版
- Android adb devices 发现设备处于offline状态
- @RenderSection,@RenderPage,@RenderBody介绍
- Python 面试问答 Top 25
- 时间格式转换—将后台返回的/Date(1448954018000)/格式转换为正常的时间格式
- 利用枚举展示下拉列表
- SQL测验
- 文件上传之——用SWF插件实现文件异步上传和头像截取
- 区分css的height、offsetHeight、clientHeight
- 控制反转(IOC)
- Qt之按钮部件
- Url重写——伪静态实现
- 搜索-D
- 马云说:未来30年是“用好互联网技术”的国家的天下_是“用好互联网技术”的年轻人的天下。