MVC操作 DropDownList

1、枚举转下拉框

public static SelectList ToSelectList<TEnum>(this TEnum enumObj, 
            bool markCurrentAsSelected = true, int[] valuesToExclude = null) where TEnum : struct
        {
            if (!typeof(TEnum).IsEnum) throw new ArgumentException("An Enumeration type is required.", "enumObj");

            var localizationService = EngineContext.Current.Resolve<ILocalizationService>();
            var workContext = EngineContext.Current.Resolve<IWorkContext>();

            var values = from TEnum enumValue in Enum.GetValues(typeof(TEnum))
                         where valuesToExclude == null || !valuesToExclude.Contains(Convert.ToInt32(enumValue))
                         select new { ID = Convert.ToInt32(enumValue), Name = enumValue.GetLocalizedEnum(localizationService, workContext) };
            object selectedValue = null;
            if (markCurrentAsSelected)
                selectedValue = Convert.ToInt32(enumObj);
            return new SelectList(values, "ID", "Name", selectedValue);
        }


        public static SelectList ToSelectList<TEnum>(
            this TEnum enumObj,
            bool markCurrentAsSelected = true,
            string Value = "Id",
            string Name = "Name")
            where TEnum : struct
        {
            if (!typeof(TEnum).IsEnum)
                throw new ArgumentException("An Enumeration type is required.", "enumObj");

            Func<object, string> GetDisplayName = o =>
            {
                var result = null as string;
                var display = o.GetType().
                    GetMember(o.ToString()).
                    First().GetCustomAttributes(false).
                    OfType<DisplayAttribute>().
                    LastOrDefault();
                if (display != null)
                {
                    result = display.GetName();
                }
                return result ?? o.ToString();
            };

            var values = from TEnum enumValue in Enum.GetValues(typeof(TEnum))
                         select new { ID = Convert.ToInt32(enumValue), Name = GetDisplayName(enumValue) };
            object selectedValue = null;
            if (markCurrentAsSelected)
                selectedValue = Convert.ToInt32(enumObj);
            return new SelectList(values, Value, Name, selectedValue);
        }



2、后台代码

var subList = FeeType.充值.ToSelectList(false);
            ViewData["FeeType"] = subList;
            if (ajaxPageOfSearch.FeeType != null && ajaxPageOfSearch.FeeType > 0)
            {
                ViewData["FeeType"] = ((FeeType)ajaxPageOfSearch.FeeType).ToSelectList(true);
            }

3、前台使用

@Html.DropDownList("FeeType",null,"请选择资金类型",new { id = "FeeType", Name = "AjaxPageOfSearch.FeeType" })



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值