MVC drop down list

controller:

public SelectList GetAgeList()
        {
            var ages = new []{
                           new {id=0,desc="8-52wks"},
                           new {id=1,desc="1"},
                           new {id=2,desc="2"},
                           new {id=3,desc="3"},
                           new {id=4,desc="4"},
                           new {id=5,desc="5"},
                           new {id=6,desc="6"},
                           new {id=7,desc="7"},
                       };

            return new SelectList(ages, "id", "desc", new { id = 2 }); // default not work because using a strongly typed view,
        }

        public SelectList GetYesNoList()
        {
            var boolList = new []{
                new {Txt = "Yes",Val = true},
                new {Txt = "No", Val = false}
            };
            return new SelectList(boolList, "Val", "Txt"); 
        }

        [ChildActionOnly]
        public ActionResult GetAQuoteAct(int id)
        {

            GetAQuoteModel m = new GetAQuoteModel();
            m.Microchipped = true;
            ViewBag.PetTypeList = GetPetTypeSelectList();
            ViewBag.PetBreedList = GetPetBreedSelectListByPetType();
            ViewBag.AgeList = GetAgeList();
            ViewBag.YesNoList = GetYesNoList();

            return PartialView("GetAQuotePartial",m);
        }


partial view page: (select one drop down, load another drop down)

<div class="row">
            <div class="large-12 columns">
                <label class="form-label">Select Pet</label>
                @Html.DropDownListFor(m => m.PetType, (SelectList)(ViewBag.PetTypeList), "Select Pet", new { @onchange = "LoadPetBreedDropdown(this)", data_target = "PetBreed" })


            </div>
        </div>

        <div class="row">
            <div class="large-12 columns">
                <label class="form-label">Select Breed</label>
                @Html.DropDownListFor(m => m.PetBreed, (SelectList)ViewBag.PetBreedList, "Select Breed")
            </div>
        </div>
        <div class="row">
            <div class="large-6 columns">
                <label class="form-label">Age</label>
               @Html.DropDownListFor(m => m.Age, (SelectList)ViewBag.AgeList);
            </div>
            <div class="large-6 columns">
                <label class="form-label">Microchipped?</label>
                @Html.DropDownListFor(m => m.Microchipped, (SelectList)ViewBag.YesNoList)
            </div>

        </div>

<script type="text/javascript">

    function LoadPetBreedDropdown(obj) {
        
        // obj dom
        var selectedPetType = obj.value;
        var targetId = obj.getAttribute("data-target");

        var target = $("#" + targetId);
        //var target = $("#PetBreed");

        target.empty();
        
       
        // create custom html attr. new {id="ui-btn-right", data_url="gear"}
        // url = target.attr("data-url");
        
        var url = '/PetType/GetPetBreedSelectListByPetTypeJson?type=' + selectedPetType;
        $.getJSON(url, function (result) {

            var m = result;
            $.each(result, function (i, field) {
                target.append($("<option></option>").val(field.Breed).html(field.Breed));
            });
        });
    }
</script>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值