zoukankan      html  css  js  c++  java
  • 下拉列表联动显示(Car表) 三级联动

    1、Models
    namespace 下拉列表联动显示_Car表_.Models
    {
        public class ProductorBF
        {
            private MyDBDataContext _context=new MyDBDataContext();
            public List<productor> Select()  //厂商全部显示
            {
                return _context.productor.ToList();
            }
    
        }
    }
    
    namespace 下拉列表联动显示_Car表_.Models
    {
        public class BrandBF
        {
            private MyDBDataContext _context = new MyDBDataContext();
            public List<brand> Select() //品牌(系列)全部显示
            {
                return _context.brand.ToList();
            }
            public List<brand> SelectByProd(string prod) //根据汽车厂商查汽车品牌
            {
    
                var query = _context.brand.Where(P => P.prod_code == prod);
                if (query.Count() > 0)
                {
                    return query.ToList();
                }
                else
                {
                    return null;
                }
             
            }
        }
    }
    
    
    namespace 下拉列表联动显示_Car表_.Models
    {
        public class CarBF
        {
            private MyDBDataContext _context = new MyDBDataContext();
            public List<car> Select() //汽车全部显示
            {
                return _context.car.ToList();
            }
            public List<car> SelectByBrand(string brand_code) //根据汽车品牌查具体汽车
            {
                var query = _context.car.Where(P => P.brand==brand_code);
                if (query.Count() > 0)
                {
                    return query.ToList();
                }
                else
                {
                    return null;
                }
            }
        }
    }
    
    
    
    2、Controllers
    namespace 下拉列表联动显示_Car表_.Controllers
    {
        public class HomeController : Controller
        {
           
            [HttpGet]
            public ActionResult Index()
            {
                //厂家表(强类型)
                List<productor> list =new ProductorBF().Select();
                SelectList aaa = new SelectList(list,"prod_code","prod_name","p001");
    
                //品牌表
                List<brand> list1 = new BrandBF().SelectByProd("p001");
                SelectList bbb1 = new SelectList(list1, "brand_code", "brand_name");
                ViewBag.bbb = bbb1;
    
                //汽车表
                List<car> cars = new CarBF().SelectByBrand("b001");
                SelectList ccc1 = new SelectList(cars,"code","name");
                ViewBag.ccc = ccc1;
    
                return View(aaa);
            }
    
            [HttpPost]
            public ActionResult Index(string prodcode,string brandcode,string carcode) 
            { 
                 //厂家表(强类型)
                List<productor> list1 = new ProductorBF().Select();
                SelectList aaa = new SelectList(list1, "prod_code", "prod_name",prodcode);
    
                //品牌表
                List<brand> list2 = new BrandBF().SelectByProd(prodcode); 
                SelectList bbb1 = new SelectList(list2,"brand_code","brand_name",brandcode);
                ViewBag.bbb = bbb1;
              
                
               
                //汽车表    
                //两种情况:选厂商的时候,判断一下加载的系列在不在当前厂商下
                //1、在的话,直接根据加载出来的系列代号查
                //2、不在的话,根据新选的厂商加载出来系列的第一个查
                var b = list2.Exists(P => P.brand_code == brandcode) ? brandcode : list2[0].brand_code; //假设选的是P003,但是定位的Brand是B001,所有需要判断,如果品牌里的下拉列表里有一个代号等于传进来的brand,说明有,可以查;如果不包含,需要根据你提交的厂商查出来的品牌中的第一项来查
                List<car> list3 = new CarBF().SelectByBrand(b);
                SelectList ccc1 = new SelectList(list3,"code","name",carcode);
                ViewBag.ccc = ccc1;
    
    
    
                return View(aaa);
            }
    
        }
    }
    
    3、Views
    @using 下拉列表联动显示_Car表_.Models;
    @model SelectList 
    @{
        Layout = null;
    }
    
    <!DOCTYPE html>
    
    <html>
    <head>
        <meta name="viewport" content="width=device-width" />
        <title>Index</title>
    </head>
    <body>
        <div>
           @using (Html.BeginForm("Index", "Home", FormMethod.Post))
           {
               //new { onchange="document.forms[0].submit();"} 文本一旦改变整个表单会跟着变
                @Html.DropDownList("prodcode", Model,new { onchange="document.forms[0].submit();"});
                @Html.DropDownList("brandcode", ViewBag.bbb as SelectList,new { onchange="document.forms[0].submit();"});
               @Html.DropDownList("carcode", ViewBag.ccc as SelectList);
    
           }
        </div>
    </body>
    </html>

    效果图:

  • 相关阅读:
    高性能javascript 笔记 第一章 loading and executing (一)
    css 微信webui
    C语言之指针
    Java中的异常
    Java中的接口
    SQL Server中自连接和联合的用法
    SQL Server中多对多关系的实现
    SQL Server中用SQL命令建表和主外键约束
    SQL Server中的分页查询
    SQL Server中的内连接
  • 原文地址:https://www.cnblogs.com/lk-kk/p/4634057.html
Copyright © 2011-2022 走看看