电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

ASP.NET MVC實現(xiàn)城市或車型三級聯(lián)動

瀏覽:144日期:2022-06-08 11:52:13

三級或多級聯(lián)動的場景經(jīng)常會碰到,比如省、市、區(qū),比如品牌、車系、車型,比如類別的多級聯(lián)動......我們首先想到的是用三個select來展示,這是最通常的做法。但在另外一些場景中,比如確定搜索條件的時候,對于三級聯(lián)動來說,可能選擇1個,2個,或3個條件,我想,以下的方式可能更適合:

以上,可以只選擇品牌,或同時選擇品牌、車系,或同時選擇品牌、車系、車型,最后把選擇的內(nèi)容展示到input上,并以逗號隔開。

可以實現(xiàn)的功能包括:

  • 點擊最上面的input彈出div,此時只顯示品牌區(qū)域
  • 點擊最左邊拼音首字母,導(dǎo)航到對應(yīng)的品牌上
  • 當(dāng)把鼠標(biāo)移動到某個品牌上,品牌為選中狀態(tài),其對應(yīng)的車系顯示在車系區(qū)域
  • 當(dāng)鼠標(biāo)不在任何品牌上,所有品牌都為不選中狀態(tài)
  • 當(dāng)把鼠標(biāo)移動到某個車系上,車系為選中狀態(tài),其對應(yīng)的車型顯示在車型區(qū)域,選中車系的所屬品牌也為選中狀態(tài)
  • 當(dāng)鼠標(biāo)不在任何車系上,所有車系、品牌都為不選中狀態(tài)
  • 當(dāng)把鼠標(biāo)移動到某個車型上,車型為選中狀態(tài),選中車型的所屬車系為選中狀態(tài),選中車系所屬品牌為選中狀態(tài)
  • 當(dāng)鼠標(biāo)不在任何車型上,所有車型、車系、品牌為不選中狀態(tài)
  • 點擊品牌,品牌顯示到input上
  • 點擊車系,品牌、車系顯示到input上,并以逗號隔開
  • 點擊車型,品牌、車系、車型顯示到input上,并以逗號隔開
  • 點擊div上的關(guān)閉按鈕或者頁面空白區(qū)域,div隱藏

界面的構(gòu)成如下:

  • 最上面的是一個input
  • 品牌、車系、車型被包裹在一個div中,點擊關(guān)閉按鈕或點擊空白處關(guān)閉的就是這個div
  • 品牌區(qū)域是一個div,分為首字母導(dǎo)航div和品牌顯示div
  • 車系區(qū)域是一個div
  • 車型區(qū)域是一個div
  • 品牌、車系、車型內(nèi)的內(nèi)容是一些dl, dt, dd的html元素
  • 樣式的事情交給css

實現(xiàn)的思路大致這樣:

  • 給input點擊事件,點擊彈出品牌、車系、車型顯示的div,并綁定頁面空白區(qū)域的點擊事件
  • 導(dǎo)航首字母指向錨點,品牌按首字母分類并提供錨點id
  • 在控制器中把品牌按照首字母分類,以json格式返回到前端,填充到tmpl模版,再追加到頁面品牌區(qū)域
  • 給品牌添加鼠標(biāo)移上事件,品牌為選中狀態(tài),對應(yīng)的車系顯示在車系區(qū)域
  • 給品牌添加鼠標(biāo)移去事件
  • 給品牌添加點擊事件,把點擊品牌顯示到input上
  • 給車系添加鼠標(biāo)移上事件,當(dāng)前車系為選中狀態(tài),其對應(yīng)的車型顯示在車型區(qū)域,其所屬的品牌為選中狀態(tài)
  • 給車系添加鼠標(biāo)移去事件
  • 給車系添加點擊事件,把點擊車系和所屬品牌顯示到input上,以逗號隔開
  • 給車型添加鼠標(biāo)移上事件,當(dāng)前車型為選擇狀態(tài),其所屬父類車系為選中狀態(tài),車型所屬父類品牌也為選中狀態(tài)
  • 給車型添加點擊事件,把點擊車型和所屬車系、品牌顯示到input上,以逗號隔開
  • 給關(guān)閉按鈕添加點擊事件,關(guān)閉div,并解除頁面空白區(qū)域點擊事件的綁定

領(lǐng)域先行,首先是有關(guān)品牌、車系、車型的模型:

    public class CarCategory    {public int Id { get; set; }public string Name { get; set; }public int PId { get; set; }public string FirstLetter { get; set; }public string AnchorName { get; set; }public int Level { get; set; }    }
  • PId屬性用來表示父類Id,車系的父類Id為某個品牌Id,車型的父類Id為某個車系Id
  • FirstLetter屬性用來表示首字母,作為分組的條件
  • AnchorName屬性用來表示品牌的錨點id,車系和車型此項為空

在ASP.NET MVC4中,在Shared/Layout.cshtml中,該有的css,js都必須有:

<head>    <meta charset="utf-8" />    <meta name="viewport" content="width=device-width" />    <title>@ViewBag.Title</title>    @Styles.Render("~/Content/css")    @RenderSection("styles", required: false)    <link href="~/bootstrap/css/bootstrap.min.css" rel="stylesheet" />    @Scripts.Render("~/bundles/jquery")    <script src="~/bootstrap/js/bootstrap.min.js"></script></head><body>    @RenderBody()        @RenderSection("scripts", required: false)</body>

模擬一個數(shù)據(jù)庫,該數(shù)據(jù)庫類可以獲取到所有的品牌、車系、車型,以及根據(jù)品牌Id或車系Id獲取對應(yīng)的車系和車型。

   public class Database    {public static IEnumerable<CarCategory> GetCarCategories(){    return new List<CarCategory>()    { new CarCategory(){Id = 0, Name = "奧迪",FirstLetter = "A",AnchorName = "aa", Level = 1, PId = -1}, new CarCategory(){Id = 1, Name = "奧斯頓·馬丁",FirstLetter = "A",AnchorName = "aa", Level = 1, PId = -1}, new CarCategory(){Id = 2, Name = "寶駿",FirstLetter = "B",AnchorName = "bb", Level = 1, PId = -1}, new CarCategory(){Id = 3, Name = "巴博斯",FirstLetter = "B",AnchorName = "bb", Level = 1, PId = -1}, new CarCategory(){Id = 4, Name = "北汽威旺",FirstLetter = "B",AnchorName = "bb", Level = 1, PId = -1}, new CarCategory(){Id = 5, Name = "北汽制造",FirstLetter = "B",AnchorName = "bb", Level = 1, PId = -1}, new CarCategory(){Id = 6, Name = "奔馳",FirstLetter = "B",AnchorName = "bb", Level = 1, PId = -1}, new CarCategory(){Id = 7, Name = "別克",FirstLetter = "B",AnchorName = "bb", Level = 1, PId = -1}, new CarCategory(){Id = 8, Name = "賓利",FirstLetter = "B",AnchorName = "bb", Level = 1, PId = -1}, new CarCategory(){Id = 9, Name = "保時捷",FirstLetter = "B",AnchorName = "bb", Level = 1, PId = -1}, new CarCategory(){Id = 10, Name = "比亞迪",FirstLetter = "B",AnchorName = "bb", Level = 1, PId = -1}, new CarCategory(){Id = 11, Name = "奔騰",FirstLetter = "B",AnchorName = "bb", Level = 1, PId = -1}, new CarCategory(){Id = 12, Name = "標(biāo)致",FirstLetter = "B",AnchorName = "bb", Level = 1, PId = -1}, new CarCategory(){Id = 13, Name = "本田",FirstLetter = "B",AnchorName = "bb", Level = 1, PId = -1}, new CarCategory(){Id = 14, Name = "寶馬",FirstLetter = "B",AnchorName = "bb", Level = 1, PId = -1}, new CarCategory(){Id = 15, Name = "北京汽車",FirstLetter = "B",AnchorName = "bb", Level = 1, PId = -1}, new CarCategory(){Id = 16, Name = "昌河",FirstLetter = "C",AnchorName = "cc", Level = 1, PId = -1}, new CarCategory(){Id = 17, Name = "長安",FirstLetter = "C",AnchorName = "cc", Level = 1, PId = -1}, new CarCategory(){Id = 18, Name = "長城",FirstLetter = "C",AnchorName = "cc", Level = 1, PId = -1}, new CarCategory(){Id = 19, Name = "奧迪A4",FirstLetter = "A",AnchorName = "", Level = 2, PId = 0}, new CarCategory(){Id = 20, Name = "奧迪A6L",FirstLetter = "A",AnchorName = "", Level = 2, PId = 0}, new CarCategory(){Id = 21, Name = "奧迪Q3",FirstLetter = "A",AnchorName = "", Level = 2, PId = 0}, new CarCategory(){Id = 22, Name = "奧迪A4舒適版",FirstLetter = "A",AnchorName = "", Level = 3, PId = 19}, new CarCategory(){Id = 23, Name = "奧迪A4尊貴版",FirstLetter = "A",AnchorName = "", Level = 3, PId = 19}, new CarCategory(){Id = 24, Name = "奧迪A6L舒適版",FirstLetter = "A",AnchorName = "", Level = 3, PId = 20}, new CarCategory(){Id = 25, Name = "奧迪A6L黃金版",FirstLetter = "A",AnchorName = "", Level = 3, PId = 20}, new CarCategory(){Id = 26, Name = "奧迪Q3舒適版",FirstLetter = "A",AnchorName = "", Level = 3, PId = 21}, new CarCategory(){Id = 27, Name = "奧迪Q3至尊版",FirstLetter = "A",AnchorName = "", Level = 3, PId = 21},    };}//根據(jù)品牌或車系I獲取所有車系或車型public static IEnumerable<CarCategory> GetCarCategoriesByPId(int pid){    return GetCarCategories().Where(c => c.PId == pid);}    }   

在HomeController中,在前端頁面加載的時候,這里提供一個分組好的所有品牌的json格式給前端;當(dāng)前端把鼠標(biāo)移動到某個品牌上,這里根據(jù)品牌Id返回車系的json格式給前端;當(dāng)前端把鼠標(biāo)移動到某個車系上,這里根據(jù)車系Id返回車型的json格式給前端。

   public class HomeController : Controller    {public ActionResult Index(){    return View();}//獲取所有品牌public ActionResult GetPinPai(){    var allPinPai = Database.GetCarCategories().Where(c => c.Level == 1).OrderBy(c => c.Id);    var result = from p in allPinPaigroup p by new{    p.FirstLetter,    p.AnchorName}into gselect new {firstletter = g.Key.FirstLetter, anchor = g.Key.AnchorName, pinpais = g};    return Json(result, JsonRequestBehavior.AllowGet);}//根據(jù)品牌Id獲取車系[HttpPost]public ActionResult GetCheXiByPId(int pid) {    var allCheXi = Database.GetCarCategoriesByPId(pid).OrderBy(c => c.Id);    var result = from c in allCheXiselect new {chexi = c.Name, cxid = c.Id, parentId = c.PId};    return Json(result);}//根據(jù)車系Id獲取車型[HttpPost]public ActionResult GetCheXingByCxId(int cxid) {    var allCheXing = Database.GetCarCategoriesByPId(cxid).OrderBy(c => c.Id);    var result = from c in allCheXing select new { chexing = c.Name, chexingid = c.Id, parentId = c.PId };    return Json(result);}    }   

在Home/Index.cshtml視圖中,品牌、車系、車型內(nèi)容都是先填充到tmpl模版中,然后追加到頁面某個區(qū)域上的。

@{    ViewBag.Title = "Index";    Layout = "~/Views/Shared/_Layout.cshtml";}@section styles{    <link href="~/Content/CarSelect.css" rel="external nofollow"  rel="stylesheet" />}<div>   <input type="text" id="mychoice">   <span><button type="button">∨</button>   </span></div><div id="carcategory-picker-outer">    <a href="javascript:void(0)" rel="external nofollow" ></a>    <div id="carcategory-picker-inner"><div id="pinpai">    <h6>請選擇品牌</h6>    <div id="PreLetter"><a href="#aa" rel="external nofollow" >A</a><a href="#bb" rel="external nofollow" >B</a><a href="#cc" rel="external nofollow" >C</a><a href="#dd" rel="external nofollow" >D</a><a href="#ff" rel="external nofollow" >F</a><a href="#gg" rel="external nofollow" >G</a><a href="#hh" rel="external nofollow" >H</a><a href="#jj" rel="external nofollow" >J</a><a href="#kk" rel="external nofollow" >K</a><a href="#ll" rel="external nofollow" >L</a><a href="#mm" rel="external nofollow" >M</a><a href="#nn" rel="external nofollow" >N</a><a href="#oo" rel="external nofollow" >O</a><a href="#qq" rel="external nofollow" >Q</a><a href="#rr" rel="external nofollow" >R</a><a href="#ss" rel="external nofollow" >S</a><a href="#ww" rel="external nofollow" >W</a><a href="#xx" rel="external nofollow" >X</a><a href="#yy" rel="external nofollow" >Y</a><a href="#zz" rel="external nofollow" >Z</a>    </div>    <div id="AllPinPai">    </div></div><div id="chexi">    <h6>請選擇車系</h6>    <div id="AllCheXi">       </div></div><div id="chexin">    <h6>請選擇車型</h6>    <div id="AllCheXing">           </div></div>    </div></div>@section scripts{    <script src="~/Scripts/jquery.tmpl.min.js"></script>    <script type="text/javascript">$(function() {    //加載所有品牌    $.getJSON("@Url.Action("GetPinPai", "Home")", function(data) {$("#pinpaiTemplate").tmpl(data).appendTo("#AllPinPai");    });    //點擊input彈出品牌車系車型選擇    $("#mychoice").on("click", function() {$("#carcategory-picker-outer").css("display", "block");$("body").bind("mousedown", onBodyDown);//綁定鼠標(biāo)單擊事件    });    //點擊關(guān)閉按鈕隱藏品牌車系車型選擇    $(".cancel").on("click", function() {hideMenu();    });    //給所有品牌加上鼠標(biāo)移動上事件    $("#AllPinPai").on("mouseover", ".ppm", function() {$(this).addClass("selected");$("#chexi").css("display", "block");$.post("@Url.Action("GetCheXiByPId","Home")", { "pid": $(this).attr("pid") }, function (data) {    $("#AllCheXi").empty();    $("#AllCheXing").empty();    $("#chexiTemplate").tmpl(data).appendTo("#AllCheXi");});    });    //給所有品牌加上鼠標(biāo)移去事件    $("#AllPinPai").on("mouseout", ".ppm", function () {$(this).removeClass("selected");    });    //品牌點擊事件    $("#AllPinPai").on("click", ".ppm", function () {$("#mychoice").val("");$("#mychoice").val($(this).text());hideMenu();    });    //給車系加上鼠標(biāo)移動上事件    $("#AllCheXi").on("mouseover", ".cxm", function () {//取取當(dāng)前車系的父類Idvar parentId = $(this).attr("parentid");//把品牌中該父類添加selected這個類$("#AllPinPai").find("a[pid="" + parentId + ""]").addClass("selected");$(this).addClass("selected");$("#chexin").css("display", "block");$.post("@Url.Action("GetCheXingByCxId","Home")", { "cxid": $(this).attr("pid") }, function (data) {    $("#AllCheXing").empty();    $("#chexingTemplate").tmpl(data).appendTo("#AllCheXing");});    });    //給車系加上鼠標(biāo)移去事件    $("#AllCheXi").on("mouseout", ".cxm", function () {$(this).removeClass("selected");//取取當(dāng)前車系的父類Idvar parentId = $(this).attr("parentid");//把品牌中該父類添加selected這個類$("#AllPinPai").find("a[pid="" + parentId + ""]").removeClass("selected");    });    //車系點擊事件    $("#AllCheXi").on("click", ".cxm", function () {$("#mychoice").val("");//取取當(dāng)前車系的父類Idvar parentId = $(this).attr("parentid");$("#mychoice").val($("#AllPinPai").find("a[pid="" + parentId + ""]").text() + "," + $(this).text());hideMenu();    });    //給車型加上鼠標(biāo)移上事件    $("#AllCheXing").on("mouseover", ".cxim", function () {//取出車型的父類idvar parentId = $(this).attr("parentid");//把車系中該父類添加selected這個類$("#AllCheXi").find("a[pid="" + parentId + ""]").addClass("selected");//取出車系的父類idvar parentparentId = $("#AllCheXi").find("a[pid="" + parentId + ""]").attr("parentid");//把品牌中該父類添加selected這個類$("#AllPinPai").find("a[pid="" + parentparentId + ""]").addClass("selected");    });    //給車型加上鼠標(biāo)移去事件    $("#AllCheXing").on("mouseout", ".cxim", function () {//取出車型的父類idvar parentId = $(this).attr("parentid");//把車系中該父類添加selected這個類$("#AllCheXi").find("a[pid="" + parentId + ""]").removeClass("selected");//取出車系的父類idvar parentparentId = $("#AllCheXi").find("a[pid="" + parentId + ""]").attr("parentid");//把品牌中該父類添加selected這個類$("#AllPinPai").find("a[pid="" + parentparentId + ""]").removeClass("selected");    });    //車型點擊事件    $("#AllCheXing").on("click", ".cxim", function () {$("#mychoice").val("");//取出車型的父類idvar parentId = $(this).attr("parentid");//取出車系的父類idvar parentparentId = $("#AllCheXi").find("a[pid="" + parentId + ""]").attr("parentid");$("#mychoice").val($("#AllPinPai").find("a[pid="" + parentparentId + ""]").text() + "," + $("#AllCheXi").find("a[pid="" + parentId + ""]").text() + "," + $(this).text());hideMenu();    });});//隱藏樹并解除綁定function hideMenu() {    $("#carcategory-picker-outer").fadeOut("fast");    $("body").unbind("mousedown", onBodyDown);}//鼠標(biāo)單擊空白處事件function onBodyDown(event) {    if (!(event.target.id == "mychoice" || event.target.id == "carcategory-picker-outer" || $(event.target).parents("#carcategory-picker-outer").length > 0)) {hideMenu();    }}    </script>        <script id="pinpaiTemplate" type="text/x-jQuery-tmpl"><dl>    <dt id="${anchor}">${firstletter}</dt>        {{if pinpais}}    {{each pinpais}}<dd><a pid="${$value.Id}">${$value.Name}</a></dd>{{/each}}    {{else}}    <dd>沒有此品牌</dd>    {{/if}}</dl>    </script>        <script id="chexiTemplate" type="text/x-jQuery-tmpl"><dl>    <dd><a pid="${cxid}" parentid="${parentId}">${chexi}</a></dd></dl>      </script>        <script id="chexingTemplate" type="text/x-jQuery-tmpl"><dl>    <dd><a pid="${chexingid}" parentid="${parentId}">${chexing}</a></dd>       </dl>      </script>}

css部分如下,關(guān)閉按鈕可自找。

#carcategory-picker-outer {    background: #f9f9f9;    padding: 10px;    width: 640px;    height: 380px;    position: relative;    display: none;}#PreLetter {    border: 0px solid blue;    width: 21px;    float: left;}#PreLetter a:link{    display: block;    text-decoration: none;    clear: both;    font-size: 10px;    text-align: center;    padding-top: 0px;    border: 1px solid #e3e3e3;    width: 15px;    height: 15px;    background-color: #e9e9e9;    margin-top: 2px;    font-weight: bold;}#PreLetter a:hover {    border: 1px solid blue;}#PreLetter a:visited {    border: 1px solid #e3e3e3;}#pinpai {    border: 0px solid green;    float: left;}#AllPinPai {    border: 1px solid #e3e3e3;    margin-left: 5px;    float: left;    padding-bottom: 0px;    width: 120px;    height: 340px;    overflow-y: auto;}#AllPinPai dl dd a {    text-decoration: none;    display: block;    padding-left: 10px;}#AllPinPai dl dd {    padding-left: 0px;}#AllPinPai dl dd a:hover {    /*background-color: gray;*/    color: white;}#AllPinPai dl {    margin-bottom: 5px;}#chexi {    border: 0px solid orange;    float: left;    margin-left: 10px;    display: none;}#AllCheXi {    width: 150px;    height: 340px;    overflow-y: auto;    border: 1px solid #e3e3e3;}#AllCheXi dl dd a {    text-decoration: none;    display: block;    padding-left: 10px;}#AllCheXi dl dd {    padding-left: 0px;}#AllCheXi dl dd a:hover {    color: white;}#AllCheXi dl {    margin-bottom: 5px;}#chexin {    border: 0px solid red;    float: left;    margin-left: 10px;    display: none;}#AllCheXing {    width: 300px;    height: 340px;    overflow-y: auto;    border: 1px solid #e3e3e3;    }#AllCheXing dl dd a {    text-decoration: none;    display: block;    padding-left: 10px;}#AllCheXing dl dd {    padding-left: 0px;}#AllCheXing dl dd a:hover {    background-color: gray;    color: white;}#AllCheXing dl {    margin-bottom: 5px;}dt {    background-color: #e9e9e9;    padding-left: 10px;}dl {    border: 0px solid red;}dd {    padding-left: 10px;    line-height: 15px;    margin-top: 5px;    margin-bottom: 0px;    border: 0px solid blue;    /*background-color: gray;*/}.selected {    background-color: gray;    color: white;}.cancel {    width: 20px;    height: 17px;    position: absolute;    display: block;    top: 20px;    right: 20px;    background-image: url("../img/close.png");    border: 1px solid orangered;    background-color: orangered;}.input-group {    width: 640px;}

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

標(biāo)簽: ASP.NET
相關(guān)文章:
主站蜘蛛池模板: 威实软件_软件定制开发_OA_OA办公系统_OA系统_办公自动化软件 | 衬四氟_衬氟储罐_四氟储罐-无锡市氟瑞特防腐科技有限公司 | 深圳富泰鑫五金_五金冲压件加工_五金配件加工_精密零件加工厂 | 智慧物联网行业一站式解决方案提供商-北京东成基业 | 胶原检测试剂盒,弹性蛋白检测试剂盒,类克ELISA试剂盒,阿达木单抗ELISA试剂盒-北京群晓科苑生物技术有限公司 | 变位机,焊接变位机,焊接变位器,小型变位机,小型焊接变位机-济南上弘机电设备有限公司 | 半容积式换热器_北京浮动盘管换热器厂家|北京亿丰上达 | 柴油发电机组_柴油发电机_发电机组价格-江苏凯晨电力设备有限公司 | 自清洗过滤器-全自动自清洗过反冲洗过滤器 - 中乂(北京)科技有限公司 | 小型手持气象站-空气负氧离子监测站-多要素微气象传感器-山东天合环境科技有限公司 | 应急灯_消防应急灯_应急照明灯_应急灯厂家-大成智慧官网 | 郑州墨香品牌设计公司|品牌全案VI设计公司 | 郑州大巴车出租|中巴车租赁|旅游大巴租车|包车|郑州旅游大巴车租赁有限公司 | 昆山新莱洁净应用材料股份有限公司-卫生级蝶阀,无菌取样阀,不锈钢隔膜阀,换向阀,离心泵 | 上海办公室装修,写字楼装修—启鸣装饰设计工程有限公司 | 减速机三参数组合探头|TSM803|壁挂式氧化锆分析仪探头-安徽鹏宸电气有限公司 | 破碎机锤头_合金耐磨锤头_郑州宇耐机械工程技术有限公司 | 储气罐,真空罐,缓冲罐,隔膜气压罐厂家批发价格,空压机储气罐规格型号-上海申容压力容器集团有限公司 | 首页-浙江橙树网络技术有限公司| 保定市泰宏机械制造厂-河北铸件厂-铸造厂-铸件加工-河北大件加工 | 深圳货架厂_仓库货架公司_重型仓储货架_线棒货架批发-深圳市诺普泰仓储设备有限公司 | 薪动-人力资源公司-灵活用工薪资代发-费用结算-残保金优化-北京秒付科技有限公司 | 3D全息投影_地面互动投影_360度立体投影_水幕灯光秀 | 广东银虎 蜂窝块状沸石分子筛-吸附脱硫分子筛-萍乡市捷龙环保科技有限公司 | 热回收盐水机组-反应釜冷水机组-高低温冷水机组-北京蓝海神骏科技有限公司 | 中直网_行业门户-行业人专业的交流平台!| 吉林污水处理公司,长春工业污水处理设备,净水设备-长春易洁环保科技有限公司 | 标准光源箱|对色灯箱|色差仪|光泽度仪|涂层测厚仪_HRC大品牌生产厂家 | 桑茶-七彩贝壳桑叶茶 长寿茶| 电缆隧道在线监测-智慧配电站房-升压站在线监测-江苏久创电气科技有限公司 | 色谱柱-淋洗液罐-巴罗克试剂槽-巴氏吸管-5ml样品瓶-SBS液氮冻存管-上海希言科学仪器有限公司 | 至顶网| 湖南档案密集架,智能,物证,移动,价格-湖南档案密集架厂家 | 成都租车_成都租车公司_成都租车网_众行宝 | 便携式XPDM露点仪-在线式防爆露点仪-增强型烟气分析仪-约克仪器 冰雕-冰雪世界-大型冰雕展制作公司-赛北冰雕官网 | 细石混凝土泵_厂家_价格-烟台九达机械有限公司 | 手表腕表维修保养鉴定售后服务中心网点 - 名表维修保养 | 硅PU球场、篮球场地面施工「水性、环保、弹性」硅PU材料生产厂家-广东中星体育公司 | 仿清水混凝土_清水混凝土装修_施工_修饰_保护剂_修补_清水混凝土修复-德州忠岭建筑装饰工程 | 仿真茅草_人造茅草瓦价格_仿真茅草厂家_仿真茅草供应-深圳市科佰工贸有限公司 | 河南凯邦机械制造有限公司 | 双工位钻铣攻牙机-转换工作台钻攻中心-钻铣攻牙机一体机-浙江利硕自动化设备有限公司 |