Html.DropDownList 三级联动
2020-02-16 16:27
447 查看
Models结构
ProductorBF
public class ProductorBF { private MyDbDataContext Context = new MyDbDataContext(); public List<Productor> Select() { return Context.Productor.ToList(); } public Productor Select(string prod_code) { var query = Context.Productor.Where(c => c.Prod_Code == prod_code); if (query.Count() > 0) { return query.First(); } return null; }
BrandBF
public class BrandBF { private MyDbDataContext Context = new MyDbDataContext(); public List<Brand> Select() { return Context.Brand.ToList(); } public List<Brand> Select(string Prod_Code) { var query = Context.Brand.Where(c => c.Prod_Code == Prod_Code); if (query.Count() > 0) { return query.ToList(); } return null; } public bool SelectBool(string brandcode) { var query = Context.Brand.Where(p=>p.Brand_Code==brandcode); if (query.Count()>0) { return true; } return false; } }
CarBF
public class CarBF { private MyDbDataContext Context = new MyDbDataContext(); public List<Car> Select() { return Context.Car.ToList(); } public List<Car> Select(string Brand_Code) { var query = Context.Car.Where(c=>c.Brand==Brand_Code); if (query.Count()>0) { return query.ToList(); } return null; } }
控制器
public ActionResult Index() { List<Productor> listP = new ProductorBF().Select(); //参数:集合、列values值、显示的列、选取的显示值 SelectList listProd = new SelectList(listP,"Prod_Code","Prod_Name","p001"); List<Brand> listB = new BrandBF().Select(); SelectList listBrand = new SelectList(listB,"Brand_Code","Brand_Name"); ViewBag.Brands = listBrand; List<Car> listC = new CarBF().Select(); SelectList listCar = new SelectList(listC,"Code","Name"); ViewBag.Cars = listCar; return View(listProd); } [HttpPost] public ActionResult Index(string prod,string brand,string car) { //prod厂家编号,每次提交过来的编号都是正确的。改变厂家提交(改变第二级车系提交)过来的prod都是正确的 List<Productor> listP = new ProductorBF().Select(); SelectList listProd = new SelectList(listP,"Prod_Code","Prod_Name",prod); //根据正确的厂家编号prod查询出的车系也是正确的 //在下拉列表中定位车系,可以判断是否是改变了车系提交过来的数据。如果没有改变车系,提交, //brand是上一次的旧数据,如果改变车系提交,提交过来的brand是新选取的数据 List<Brand> listB = new BrandBF().Select(prod); var c = new BrandBF().SelectBool(brand) ? brand : listB[0].Brand_Code; SelectList listBrand = new SelectList(listB, "Brand_Code", "Brand_Name", c); ViewBag.Brands = listBrand; //与上面情况相同,页面没有操作车系的情况下,车辆的查询按上面新查出的车系编号查询 //页面操作改变车系的情况下,按提交过来的车系编号查询 var b = listB.Exists(p => p.Brand_Code == brand) ? brand : listB[0].Brand_Code; List<Car> listC = new CarBF().Select(b); SelectList listCar = new SelectList(listC,"Code","Name",car ); ViewBag.Cars = listCar; return View(listProd); }
Views
<div> @using(@Html.BeginForm("Index","Cars",FormMethod.Post)) { @Html.DropDownList("prod", Model, new { onchange = "document.forms[0].submit()" })@*js方法,值发生变化触发,效果==Html中第一个表单中的‘submit’提交*@ @Html.DropDownList("brand",ViewBag.Brands as SelectList, new { οnchange="document.forms[0].submit()" }) @Html.DropDownList("car", ViewBag.Cars as SelectList) } </div>
效果
第一级厂家变化
第二级车系变化
转载于:https://www.cnblogs.com/happinesshappy/p/4634564.html
20000- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 纯HTML网页传值(非ajax)
- Ubuntu中 odoo12安装wkhtmltopdf报错:Depends: libpng12-0 but it is not installable
- HTML学习总结
- HTML DOM笔记
- 如何给html网页标题添加ico图标
- html中的标签总结
- 基于itext的html转pdf的代码实现,亲测可用
- Html注册表单示例
- 2019/9/7 HTML复习回顾
- html的入门——从标签开始(1)
- html的入门——从标签开始(3)
- html的入门——从标签开始(4)
- innerHTML和creatElement创建元素的区别
- html系列教程--article audio
- html系列教程--base button canvas caption
- HTML DOM
- HTML入门笔记1
- HTML常用标签
- html学习笔记--xdd
- HTML