枚举类enum如何页面中下拉框展示供选择

首先 枚举类的功能是为了解释说明一些内容,并且一个数字对应一个内容

从而当使用枚举类的时候可以直接使用描述内容而不去使用数字,这样解读性更好。

那么如何让枚举类里面的内容在页面的下拉框中出现<option value="1">对应1的枚举内容</option>

 

第一步肯定是定义一个使用类  俩个成员变量 一个是id 一个 是内容

第二步是把枚举的类进行遍历将里面的 id和内容 一一读取出来 放入使用类中

第三步是将使用类 在页面上遍历 放入option中,或者使用html扩展直接将使用类集合绑定到下拉框中

 

举例: 拿经常使用的状态 枚举类

public enum Status
    {
        Paid = 1,
        Ticketed = 2,
        Sent = 3,
        Cancelled = 4,
        Confirmed = 5,
        Modified = 6,
        Deposit = 7
    }

这些状态想要在页面中下拉框展示

第一步,建立使用类

 public class TourOrderStatus
    {
        public string Id { get; set; }

        public string Status { get; set; }
    }

第二步将枚举 状态 循环遍历将 id和内容 赋给使用类

 public List<TourOrderStatus> GetTourOrderStatus()
        {
            var statuses = new List<TourOrderStatus>();
            var enums = Enum.GetValues(typeof(Status));
            foreach (var e in enums)
            {
                TourOrderStatus status = new TourOrderStatus
                {
                    Status = e.ToString(),
                    Id = (Array.IndexOf(enums, e) + 1).ToString()
                };
                statuses.Add(status);
            }

//这里可以对使用类 添加只在页面上使用的新的状态   并不是枚举类中的状态

            statuses.Insert(0, new TourOrderStatus { Id = "0", Status = "All" });
            statuses.Insert(1, new TourOrderStatus { Id = "-1", Status = "Normal" });
            statuses.Insert(8, new TourOrderStatus { Id = "8", Status = "Pending" });
            return statuses;
        }

第三步 页面遍历使用类 此举例使用了html扩展下拉

控制器中:接收了使用类然后绑定给下拉框

var status = bll.GetTourOrderStatus();
            if (status != null && status.Any())
            {
                ViewBag.Status = new SelectList(status, "Id", "Status", "All");
            }

页面中:直接展示

 @Html.DropDownList("Status", null, new { @class = "bs-select form-control input-small input-inline" })

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值