MVC 中的@Html.DropDownList下拉框的使用

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               {                   [email protected]"/^[1-9]+$/",                   sucmsg=" ",                   nullmsg="请选择商品分类",                   errormsg="请选择商品分类"               })

第三步:展示结果:

1、读取DB 数据源的样式

2、读取枚举的样式图

时间: 2024-10-14 19:46:51

MVC 中的@Html.DropDownList下拉框的使用的相关文章

GridView 中绑定DropDownList ,下拉框默认选中Label的值

在GridView中,我们 有时候要绑定值. 前台绑定的代码可以这样 <asp:TemplateField HeaderText="当前状态" ItemStyle-HorizontalAlign="Center"> <EditItemTemplate> <asp:DropDownList ID="dStatus" DataSource='<%#BindStatus()%>' DataTextField=&

UI中经常出现的下拉框下拉自动筛选效果的实现

小需求是当你在第一个下拉框选择了国家时,会自动更新第二个省份的下拉框,效果如下 两个下拉选择Html如下: <select id="country_select"> <option> All Countries</option> <option> Afghanistan</option> <option> Albania</option> <option> Algeria</optio

ThinkPHP中ajax绑定select下拉框无法显示

html代码: 控制器代码: 其中的<option value="{$vo.gradeId}">{$one.gradeName}</option> 在操作过程中无法自动填充,下拉框有位置,却无法填充数据库的原因是 数据库的命名统一 一致,不能使用驼峰命名法来命名数据库的表的名字. 可以使用下划线,横线来命名表.

.net mvc DropDownList 下拉框_无限级分类

1.数据库设计: id:int name:string pid:int  //父级id(顶级菜单默认为0) 2.Controller: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using MvcTest.Models; namespace MvcTest.Controllers { [ValidateInput(false)

ASP.NET MVC Select无限级分类选择下拉框

1:读取父级下的所有子类别 *ViewBag.ParentItemList:不能与ParentId相同 private void ParentDropDownList() { List<SAS.Model.BPMS_SysMenu> list = new List<SAS.Model.BPMS_SysMenu>(); StringBuilder strWhere = new StringBuilder(); List<SelectListItem> selectList

angular 中自己常用的下拉框获取值方法

方法一 HTML页中 <select name="" id="if02" data-first-option="true" (change)="getChange($event.target.value)"> <option value="-1">--请选择--</option> <option [value]="true">是</o

c# DropDownList 下拉框实现树形导航

ddlbig.Items.Add(new ListItem("新闻分类", "0")); newclass(pub.getpower(), "146", ""); public  void newclass(DataTable dtMenu, string parentNo,string str) { string expression = "parentid= " + parentNo; DataRow[

js中年份、月份下拉框

<select id="year" style="width: 100px;"></select> <select id="month" style="width: 100px;"></select> //初始化年            var now = new Date();            var nowYear = now.getFullYear();       

asp.net中如何绑定combox下拉框数据(调用存储过程)

#region 绑定类型(商品类型.仓库名称) public void DataType_Bind(int _peoid) { DataTable dt_goodsname = new DataTable(); dt_goodsname = stockbll.GetList_goodstype(_peoid).Tables[0];  //获取商品类别 this.cb_goodstype.Items.Clear(); foreach (DataRow dr in dt_goodsname.Rows