MVC下拉框的级联功能

MVC下拉框的级联功能

下拉框的级联:根据前一个下拉框的选择,限定后一个下拉框的选择范围。
也就是说,第二个下拉框可选内容,会根据第一个下拉框的选择而改变。

1.控制器里:
这里的示例代码里,是根据ChangeType来限制ChangeItem

#region  GetDropDownList
//先生成下拉框
        public void LoadDropDownList()
        {
            var result = Business.Instance.GetAllDropDownList();
            List<SelectListItem> StatusList1 = new List<SelectListItem>();
            StatusList1.Add(new SelectListItem { Text = "", Value = "" });
            var status = result.Where(x => x.SYSNAME == "STATUS").ToList();
            if (status != null && status.Count > 0)
            {
                foreach (var item in status)
                {
                    StatusList1.Add(new SelectListItem { Text = item.SYSVALUE, Value = item.SYSVALUE });
                }

            }
            ViewBag.StatusList = StatusList1;


            #region ChangeTypeList
            List<SelectListItem> ChangeTypeList = new List<SelectListItem>();
            ChangeTypeList.Add(new SelectListItem { Text = "", Value = "" });
            var change1 = result.Where(x => x.TYPE == "Change").ToList();
            if (change1 != null && change1.Count > 0)
            {
                var change11 = change1.Select(x => x.SYSNAME).Distinct().ToList();
                if (change11 != null && change11.Count > 0)
                {
                    foreach (var item1 in change11)
                    {
                        ChangeTypeList.Add(new SelectListItem { Text = item1, Value = item1 });
                    }
                }
            }
            ViewBag.ChangeTypeList = ChangeTypeList;
            ViewBag.ChangeItemList = ChangeTypeList;
            ViewBag.ChangeClassList = ChangeTypeList;
            #endregion

        }

        #endregion

        #region GetChangeItemList
        //这个是被改变的下拉框
        public JsonResult GetChangeItemList(string ChangeType)
        {
            var result = Business.Instance.GetAllDropDownList().Where(x => x.TYPE == "Change").ToList();
            var rst1 = result.Where(x => x.SYSNAME == ChangeType).ToList();
            List<SelectListItem> ChangeItemList = new List<SelectListItem>();
            ChangeItemList.Add(Utilities.UtilCommon.GetDefaultNoneItem());
            if (rst1 != null)
            {
                foreach (var attr in rst1)
                {
                    ChangeItemList.Add(new SelectListItem() { Text = attr.SYSVALUE, Value = attr.SYSVALUE });
                }
            }

            return Json(ChangeItemList, JsonRequestBehavior.AllowGet);
        }

        #endregion
在Index控制器里,调用:
LoadDropDownList();

2.前端代码:

<div class="form-group">
    @Html.LabelFor(m => m.Change_Type, new { @class = "col-md-2 control-label" })
    <div class="col-md-10">
        @Html.DropDownListFor(m => m.Change_Type, ViewBag.ChangeTypeList as List<SelectListItem>, new { @class = "from-control", @onchange = "FillChangeItem('Change_Type','ChangeItem')" })
        @Html.ValidationMessageFor(m => m.Change_Type)
    </div>
</div>

<div class="form-group">
    @Html.LabelFor(m => m.ChangeItem, new { @class = "col-md-2 control-label" })
    <div class="col-md-10">
        @Html.DropDownListFor(m => m.ChangeItem, ViewBag.ChangeItemList as List<SelectListItem>, new { @class = "from-control"})
    </div>
</div>

js:

        function FillChangeItem(frame1, frame2) {
            var ChangeItem = $('#' + frame1).val();
            $('#' + frame2).empty();

            $.post("/TKManage/PCNRequest/GetChangeItemList", { ChangeType: ChangeItem }, function (data) {
                for (var i = 0; i < data.length; i++) {
                    $("#" + frame2).append("<option value='" + data[i].Value + "'>" + data[i].Value + "</option>");
                }
            });

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值