zoukankan      html  css  js  c++  java
  • asp.net MVC4 @Html.DropDownList的使用

    在MVC4中使用Razor语法,一使用就爱上他了,

    一般项目都是有一些增删改查功能,表单下拉框是经常使用的,除了用原始的<select>外,还可以用@Html.DropDownList和@Html.DropDownListFor,这里提供一点方法;

    在控制器中定义两种可生成下拉列表项方法:

     ViewBag.list = new SelectList(list.Select(x => x.Address).Distinct());
    ViewBag.down
    = new SelectList(list.Select(x => new { text = x.Address, value = x.Id }), "value", "text"); ViewData["downlist"]= list.Select(x=>new SelectListItem() { Text=x.Address,Value=x.Id.ToString()});

    在网页中可以按如下写法

    @Html.DropDownList("down",@Model.Address)
    @Html.DropDownListFor(x=>x.Id,ViewBag.down as IEnumerable<SelectListItem>)
    @Html.DropDownListFor(x=>x.Id, ViewData["downlist"] as IEnumerable<SelectListItem>)

     如果我们想在DropDownList中的最顶端添加一个默认值的话,请模仿下面的写法:添加第三个参数

    @Html.DropDownListFor(x=>x.Id,ViewBag.down as IEnumerable<SelectListItem>, "---Select---")


    如果想在DropDownListFor中添加自己的ID属性,可以这样
    @Html.DropDownListFor(x=>x.Id,ViewBag.down as IEnumerable<SelectListItem>,new{id="userid"})

    如果是两级下拉级联菜单可以使用jquery的ajax:
    $("#parentDep").change(function () {
            var $this = $(this);
            var id = $this.val();
            $this.next("select").remove();
            $("#depid").val(id);
            if (id.length > 0) {
                $.getJSON("/users/getSubDep/" + id, "", function (data) {
                    if (data.length > 0) {
                        var sel = $('<select id="subDep" name="subDep" class="form-control" style=" 200px; display: inline-block;"><option value=""></option></select>');
                        for (var i = 0; i < data.length; i++) {
                            sel.append('<option value="' + data[i].id + '">' + data[i].text + '</option>');
                        }
                        sel.change(function () {
                            $("#depid").val(sel.val());
                        });
                        $this.after(sel);
                    }
                });
            }
        });
    
    
    public ActionResult getSubDep(int id = 0)
            {
                if (!Request.IsAjaxRequest())
                {
                    return Content("非法操作");
                }
                var res = db.departments.Where(x => x.depparentid == id);
                if (res == null)
                {
                    return Content("");
                }
                else
                {
                    return Json(res.Select(x => new { id = x.id, text = x.depname }), JsonRequestBehavior.AllowGet);
                }
            }


  • 相关阅读:
    随手快递app冲刺2开发的第六天
    随手快递app冲刺2开发的第五天
    随手快递app冲刺2开发的第四天
    随手快递app冲刺2开发的第三天
    随手快递appc冲刺2开发的第二天
    随手快递app冲刺2开发的第一天
    程序员修炼之道:从小工到专家阅读笔记03
    安卓学习70
    安卓学习69
    安卓学习68
  • 原文地址:https://www.cnblogs.com/lunawzh/p/4943564.html
Copyright © 2011-2022 走看看