标签:
MVC 中的下拉框 实现方式,下面为大家介绍一个我自己认为比较好用的实现方式,而二话不说直接上代码:
第一步: 后台代码
//公共的方法 //在每次需要展示下拉框的时候,需要调用一下这个方法 【数据源是DB数据库】 private void _ProductExtensions( BtDbContext _ctx ) { #region 商品分类 List<SelectListItem> listProductTypes = new List<SelectListItem>(); listProductTypes.Add(new SelectListItem() { Text = "商品分类", Value = "0" }); //直接查询数据库中的数据,将其绑定到list中 listProductTypes.AddRange(_ctx.ProductTypes.Select(t => new SelectListItem() { Text = t.TypeName, Value = t.TypeId.ToString() }).ToList()); ViewData["ProductTypes"] = listProductTypes; #endregion }
//枚举的创建
/// <summary>
/// 本系统订单状态
/// </summary>
[Serializable]
[ProtoContract]
[Description("订单状态")]
public enum OrderStatus
{
/// <summary>
/// 全部
/// </summary>
[Description("全部")]
[ProtoEnum(Value = 0)]
NoSetting = 0,
/// <summary>
/// 未派单
/// </summary>
[Description("未派单")]
[ProtoEnum(Value = 1)]
NoSendOrder = 1,
}
//调用的方式同上,唯一不同的是数据源 这里使用的数据源是 来自枚举
private void _OrderExtensions() { #region 订单状态 Dictionary<string, int> dic = new Dictionary<string, int>(); dic = typeof(EnumHelper.OrderStatus).ToDictionary(); List<SelectListItem> listOrderState = new List<SelectListItem>(); listOrderState.Add(new SelectListItem() { Text = "订单状态", Value = "" }); foreach (var item in dic) { listOrderState.Add(new SelectListItem() { Text = item.Key, Value = item.Value.ToString() }); } ViewData["OrderStates"] = listOrderState; #endregion }
第二步:前端调用
@{ //商品分类 初始加载 List<SelectListItem> listProductTypes = ViewData["ProductTypes"] as List<SelectListItem>; }
//直接在MVC 标签中调用就ok了
@Html.DropDownList("TypeId", listProductTypes, new
{
datatype=@"/^[1-9]+$/",
sucmsg=" ",
nullmsg="请选择商品分类",
errormsg="请选择商品分类"
})
第三步:展示结果:
1、读取DB 数据源的样式
2、读取枚举的样式图
MVC 中的@Html.DropDownList下拉框的使用
标签:
原文地址:http://www.cnblogs.com/lizichao1991/p/5691335.html