在开发过程中一些状态的表示使用到枚举类型,那么如何将枚举类型直接绑定到ListControl(DropDownList)是本次的主题,废话不多说了,直接代码:

首先看工具类代码:

    /// <summary>
/// 通过枚举类型 绑定到ListControl 控件的通用类
/// 用法:直接传入要绑定的Control: EnumManager<枚举>.Bind_Enum_Control(ListControl);
/// </summary>
/// <typeparam name="TEnum"></typeparam>
public static class EnumManager<TEnum> where TEnum : struct, System.IConvertible
{
private static readonly System.Collections.Generic.Dictionary<string, System.Collections.Generic.Dictionary<int, string>> EnumDictionary = new System.Collections.Generic.Dictionary<string, System.Collections.Generic.Dictionary<int, string>>(); /// <summary>
/// 获取枚举
/// </summary>
/// <returns></returns>
public static System.Collections.Generic.Dictionary<int, string> GetEnumDictionary()
{
if (EnumDictionary.ContainsKey(typeof(TEnum).FullName))
return EnumDictionary[typeof(TEnum).FullName]; var EnumDict = Add_Enum_To_Diconary();
return EnumDict; }
/// <summary>
/// 传入控件进行绑定
/// </summary>
/// <param name="control"></param>
public static void Bind_Enum_Control(System.Web.UI.WebControls.ListControl control)
{
control.DataSource = GetEnumDictionary();
control.DataTextField = "value";
control.DataValueField = "key";
control.DataBind();
}
/// <summary>
/// 通过key获取Enum的值
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public static string GetEnumValue(int key)
{
if (EnumDictionary.ContainsKey(typeof(TEnum).FullName))
return EnumDictionary[typeof(TEnum).FullName][key];
var EnumDic = Add_Enum_To_Diconary();
return EnumDic[key];
} private static System.Collections.Generic.Dictionary<int, string> Add_Enum_To_Diconary()
{
System.Type t = typeof(TEnum);
string[] _names = System.Enum.GetNames(t);
int[] _values = System.Enum.GetValues(t) as int[];
System.Collections.Generic.Dictionary<int, string> EnumDict = new System.Collections.Generic.Dictionary<int, string>(); for (int i = ; i < _values.Length; i++)
{
EnumDict.Add(_values[i], _names[i]);
} EnumDictionary.Add(t.FullName, EnumDict);
return EnumDict;
}
}

工具类的使用 新建一个WebForm1.aspx页面:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="Test_ToFixed.WebForm1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
测试将枚举类型数据绑定到下拉列表:
<asp:DropDownList runat="server" ID="ddl"/>
</div>
</form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls; namespace Test_ToFixed
{
public enum Status
{
审核失败 = ,
未审核 = ,
审核中 = ,
已审核 =
} public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Common.EnumManager<Status>.Bind_Enum_Control(this.ddl); //将枚举类型绑定到DropDownList控件
this.ddl.Items.Insert(, new ListItem("请选择", "-1"));
}
}
}
}

效果:

Asp.Net 将枚举类型(enum)绑定到ListControl(DropDownList)控件的更多相关文章

  1. 从xml文件中绑定数据到DropDownList控件上

    参考了2篇文章: http://www.cnblogs.com/JuneZhang/archive/2010/11/23/1885671.html http://blog.sina.com.cn/s/ ...

  2. 【转】java枚举类型enum的使用

    原文网址:http://blog.csdn.net/wgw335363240/article/details/6359614 java 枚举类型enum 的使用 最近跟同事讨论问题的时候,突然同事提到 ...

  3. C# 中的枚举类型 enum (属于值类型)

    原文 C# 中的枚举类型 enum (属于值类型) C# 支持两种特殊的值类型:枚举和结构. 声明枚举:声明时要声明所有可能的值. using System; using System.Collect ...

  4. 转载 java枚举类型enum的使用 (原文地址:http://blog.csdn.net/wgw335363240/article/details/6359614)

    java枚举类型enum的使用 最近跟同事讨论问题的时候,突然同事提到我们为什么java中定义的常量值不采用enmu枚举类型,而采用public final static 类型来定义呢?以前我们都是采 ...

  5. 枚举类型enum详解——C语言

    enum enum是C语言中的一个关键字,enum叫枚举数据类型,枚举数据类型描述的是一组整型值的集合(这句话其实不太妥当),枚举型是预处理指令#define的替代,枚举和宏其实非常类似,宏在预处理阶 ...

  6. 深入理解Java枚举类型(enum)

    https://blog.csdn.net/javazejian/article/details/71333103 深入理解Java类型信息(Class对象)与反射机制 深入理解Java枚举类型(en ...

  7. 人生苦短之Python枚举类型enum

    枚举类型enum是比较重要的一个数据类型,它是一种数据类型而不是数据结构,我们通常将一组常用的常数声明成枚举类型方便后续的使用.当一个变量有几种可能的取值的时候,我们将它定义为枚举类型.在Python ...

  8. 全面解读Java中的枚举类型enum的使用

    这篇文章主要介绍了Java中的枚举类型enum的使用,开始之前先讲解了枚举的用处,然后还举了枚举在操作数据库时的实例,需要的朋友可以参考下 关于枚举 大多数地方写的枚举都是给一个枚举然后例子就开始sw ...

  9. Java基础之枚举类型Enum的使用

    Java基础之枚举类型Enum的使用 定义 public enum AccruedCleanEnum { SPREAD("1","发票"),OTHER(&quo ...

随机推荐

  1. 01.SQLServer性能优化之----强大的文件组----分盘存储

    汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 文章内容皆自己的理解,如有不足之处欢迎指正~谢谢 前天有学弟问逆天:“逆天,有没有一种方 ...

  2. shell注释

    sh里没有多行注释,只能每一行加一个#号.只能像这样: #-------------------------------------------- # 这是一个自动打ipa的脚本,基于webfrogs ...

  3. Windows Server 2012 NIC Teaming介绍及注意事项

    Windows Server 2012 NIC Teaming介绍及注意事项 转载自:http://www.it165.net/os/html/201303/4799.html Windows Ser ...

  4. ASP.NET Core 之 Identity 入门(三)

    前言 在上一篇文章中,我们学习了 CookieAuthentication 中间件,本篇的话主要看一下 Identity 本身. 最早2005年 ASP.NET 2.0 的时候开始, Web 应用程序 ...

  5. C语言 · 乘法表

    问题描述 输出九九乘法表. 输出格式 输出格式见下面的样例.乘号用"*"表示. 样例输出 下面给出输出的前几行:1*1=12*1=2 2*2=43*1=3 3*2=6 3*3=94 ...

  6. Yii1.1的验证规则

    在Yii1.1的数据验证是由CValidator完成,在CValidator中提供了各种基本的验证规则 <?php public static $builtInValidators=array( ...

  7. load和initialize方法

      一.load 方法什么时候调用: 在main方法还没执行的时候 就会 加载所有类,调用所有类的load方法. load方法是线程安全的,它使用了锁,我们应该避免线程阻塞在load方法. 在项目中使 ...

  8. 算法与数据结构(十六) 快速排序(Swift 3.0版)

    上篇博客我们主要聊了比较高效的归并排序算法,本篇博客我们就来介绍另一种高效的排序算法:快速排序.快速排序的思想与归并排序类似,都是采用分而治之的方式进行排序的.快速排序的思想主要是取出无序序列中第一个 ...

  9. [开发笔记]GCC 分支预测优化

    #define likely(x) __builtin_expect(!!(x),1)#define unlikely(x) __builtin_expect(!!(x),0) 用于优化在做分支判断的 ...

  10. Ajax使用WCF实现小票pos机打印源码

    通过ajax跨域方式调用WCF服务,实现小票pos机的打印,源码提供web方式,客户端方式测试,服务驻留右侧底部任务栏,可控制服务开启暂停,用户可自定义小票打印模板,配合零售录入. qq  22945 ...