DropDownList 绑定 枚举 Enum

本文提供了一个方法,用于从指定的枚举类型中获取列表,并将其应用于下拉列表组件,包括全选选项的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public static List<ListItem> GetEnumList(Type enumType, bool allAllOption)
    
{
        
if (enumType.IsEnum == false)
        
{
            
return null;
        }

        List
<ListItem> list = new List<ListItem>();
        
if (allAllOption == true)
        
{
            list.Add(
new ListItem("--全部--"""));
        }


        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.IsSpecialName) continue;
            strValue 
= field.GetRawConstantValue().ToString();
            
object[] arr = field.GetCustomAttributes(typeDescription, true);
            
if (arr.Length > 0)
            
{
                strText 
= (arr[0as DescriptionAttribute).Description;
            }

            
else
            
{
                strText 
= field.Name;
            }


            list.Add(
new ListItem(strText, strValue));
        }


        
return list;
    }

 

    /**//// </summary>
    
/// 派驻申请的状态
    
/// </summary>

    public enum AccreditStatus
    
{
        
/**//// <summary>
        
/// 已经结束
        
/// </summary>

        [Description("结束")]
        Pass 
= 2,

        
/**//// <summary>
        
/// 新建
        
/// </summary>

       [Description("新建")]
        New 
= 0,

        
/**//// <summary>
        
/// 在审批中
        
/// </summary>

        [Description("审批中")]
        Running 
= 1,

        
/**//// <summary>
        
/// 被拒绝
        
/// </summary>

        [Description("被拒绝")]
        Refuse 
= -1
    }

            this.ddlState.DataSource = Global.GetEnumList(typeof(AccreditStatus), true);
            this.ddlState.DataTextField = "Text";
            this.ddlState.DataValueField = "Value";
            this.ddlState.DataBind();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值