下拉列表联动显示(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>

效果图:

时间: 2024-10-10 00:21:55

下拉列表联动显示(Car表) 三级联动的相关文章

下拉列表联动显示(中国省市)三级联动

最主要的就是要判断谁根据谁编写的!!!理清思路!!! 1.Models namespace 下拉列表联动显示_中国省市_.Models { public class ChinaBF { private MyDBDataContext _context = new MyDBDataContext(); public List<ChinaStates> Select() { return _context.ChinaStates.ToList(); } //因为所有数据都在一个表里, 都是根据Pa

根据参数显示类别(三级联动,需要JSON数据)

Scripts/Category.js 调用方法: $(function () { BindCategory(); //默认绑定文本框中的值 BindCategoryData($("#txtCategoryId").val()); }) 绑定三级联动(详情见:http://www.cnblogs.com/haozhenjie819/p/3887279.html) function BindCategory() { var $txtCategory = $("#txtCateg

购物车和用户交互,显示省市县三级联动的选择

购物车 购物车 功能要求: 要求用户输入总资产,例如:2000 显示商品列表,让用户根据序号选择商品,加入购物车 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功. 附加:可充值.某商品移除购物车 asset_all = 0 m1 = input('请输入金额:') mon_all = int(m1) goods = [ {"name": "电脑", "price": 1999}, {"name": "

Python实现用户交互,显示省市县三级联动的选择

题目:Python实现用户交互,显示省市县三级联动的选择 代码: dic = { "江西": { "萍乡": ["安源", "彭高", "上栗"], "新余": ["良山", "新钢", "兴安岭"], }, "北京": { "大兴区": ["礼贤镇", "魏

三级联动第二种方法 三级联动.html

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <select id="province" name="province"> <option value="">请选择</option&

一个表三级联动---WinFrom

1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Data.SqlClient; 6 using System.Drawing; 7 using System.Linq; 8 using System.Text; 9 using System.Threading.Tasks; 10 using System.W

11 用户交互,显示省市县三级联动的选择

dict = {    "河北": {        "石家庄":{"晋州市","平山县","元氏"},        "邯郸": {"永年","涉县","磁县"},        },    "河南": {        "郑州": {"新郑","荥阳&qu

三级联动第二种方法 三级联动数据.js

var data = { '0':{2:'北京',25:'天津',24:'上海',31:'重庆',130000:'河北省',140000:'山西省',150000:'内蒙古自治区',210000:'辽宁省',220000:'吉林省',230000:'黑龙江省',320000:'江苏省',330000:'浙江省',340000:'安徽省',350000:'福建省',360000:'江西省',370000:'山东省',410000:'河南省',420000:'湖北省',430000:'湖南省',44

显示省、市、县三级联动的选择

本文主要是实现:用户交互,显示省市县三级联动的选择 代码: #!/usr/bin/env python# -*- coding:utf-8 -*-# author by lh dic = { '河北': { '石家庄': ['鹿泉', '藁城', '元氏'], '邯郸': ['永年', '涉县', '磁县'], }, '河南': { '郑州':['中原区','二七区','金水区'], '开封':['龙亭区','鼓楼区','禹王台区'] }, '山西': { '太原':['迎泽区','杏花岭区',