mvc用ViewData实现下拉列表的级联

1、准备数据的action 
public   ActionResult  Index()
        {
            var  Drplist = OperateContext .Current.BLLSession.IProductsSortBLL.GetListBy(s => s.ProductsSortID > 0).Select(t => new  Model.ViewModel. ProductsSort ()
            {
                ProductsSortID = t.ProductsSortID,
                ProductsSortName = t.ProductsSortName,
                nodes = t.GoodsSorts.Select(s => new  Model.ViewModel. GoodSort ()
                {
                    GoodsSortID = s.GoodsSortId,
                    GoodsSortName = s.GoodsSortName
                }
                    ).ToList()
             
            }).ToList();
           ViewData[ "Drplist" ] =Common. DataHelper .ToJSON(Drplist);
             return  View();
        }

2、cshtml页面

   <select name="ProductsSort" id="ProductsSort">

                             <option value="产品一级分类" selected="selected">产品一级分类</option>

                        </select>

                        <select name="GoodSort" id="GoodSort">

                             <option value="产品二级分类" selected="selected">产品二级分类</option>

                        </select> 

3、js

  var a = '@ViewData["Drplist"]';

   j = escape2Html(a);

   var obj = $.parseJSON(j);

   function escape2Html(str) {

       var arrEntities = { 'lt': '<', 'gt': '>', 'nbsp': ' ', 'amp': '&', 'quot': '"' };

        return str.replace(/&(lt|gt|nbsp|amp|quot);/ig, function (all, t) { return arrEntities[t]; });

    }

    $(document).ready(init);

    function init() {

           $.each(obj, function (index, val) {

            $("<option value='" + val.ProductsSortID + "'>" + val.ProductsSortName + "</option>").appendTo($("#ProductsSort"))//动态添加Option子项

       });

      

        $("select[name='ProductsSort']").change(function () {

            var selectedPortsSort = $(this).val();

            console.log(selectedPortsSort);

            $("#GoodSort").empty();//清空二级下拉框

            ShowCityWithSelectedGoodSort(selectedPortsSort);

        });

    }

    function ShowCityWithSelectedGoodSort(selectedPortsSort) {

       $.each(obj, function (index, val) {

           if (val.ProductsSortID == selectedPortsSort)

            {

               $.each(val.nodes, function (i, v)

                {

 $("<option value='" + v.GoodsSortID + "'>" + v.GoodsSortName + "</option>").appendTo($("#GoodSort"))

                })

           }

                  });

           }


转载于:https://www.cnblogs.com/cqstars/p/7294410.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值