思路

假如有三级省、市、区,先加载出所有省
选择省之后,加载出该省所有市
选择市之后,加载出该市所有区
重新选择省,则清空市和区
重新选择市,则清空区
想好数据结构,不同的数据结构做法不同

例子

数据结构

  1. public class Area
  2. {
  3. public int PKID { get; set; }
  4. public int ParentID { get; set; }
  5. public string Name { get; set; }
  6. }

测试数据

 
1

前台

  1. <div>
  2. <span>地区搜索:</span>@Html.DropDownList("Provinces", new SelectList(ViewBag.Province as System.Collections.IEnumerable, "PKID", "Name"), "请选择")
  3. &nbsp;&nbsp;&nbsp;&nbsp;
  4. <select id="Citys">
  5. <option value="">请选择</option>
  6. </select>
  7. &nbsp;&nbsp;&nbsp;&nbsp;
  8. <select id="Districts">
  9. <option value="">请选择</option>
  10. </select>
  11. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  12. <button onclick="GetResult()">获取当前选择</button>
  13. </div>
  1. <script>
  2. $("#Provinces").change(function () {
  3. var self = $(this);
  4. var parentId = self.val();
  5. if (parentId != "") {
  6. $("#Province").val(self.find("option:selected").val());
  7. var option = GetRegion(parentId);
  8. $("#Citys").html(option);
  9. $("#Districts").html("<option value=''>请选择</option>");
  10. } else {
  11. $("#Citys").html("<option value=''>请选择</option>");
  12. $("#Districts").html("<option value=''>请选择</option>");
  13. }
  14. });
  15. $("#Citys").change(function () {
  16. var self = $(this);
  17. var parentId = self.val();
  18. if (parentId != "") {
  19. $("#City").val(self.find("option:selected").val());
  20. $("#RegionID").val(parentId);
  21. var option = GetRegion(parentId);
  22. $("#Districts").html(option);
  23. } else {
  24. $("#Districts").html("<option value=''>请选择</option>");
  25. }
  26. });
  27. function GetRegion(ParentID) {
  28. var option = "<option value=''>请选择</option>";
  29. $.ajax({
  30. type: "get",
  31. url: "/AboutDB/GetArea",
  32. data: { "ParentID": ParentID },
  33. async: false,
  34. success: function (city) {
  35. //拼接下拉框
  36. $.each(city, function (index, item) {
  37. option += "<option value=" + item.PKID + ">" + item.Name + "</option>";
  38. });
  39. }
  40. });
  41. //返回下拉框html
  42. return option;
  43. }
  44. function GetResult()
  45. {
  46. var Province = $("#Provinces").find("option:selected").text();
  47. var City = $("#Citys").find("option:selected").text();
  48. var District = $("#Districts").find("option:selected").text();
  49. layer.alert(Province + "-" + City + "-" + District);
  50. }
  51. </script>

后台

  1. //加载页面,先查出省列表
  2. public ActionResult Area()
  3. {
  4. ViewBag.Province = new AboutDBManager().GetArea(0);
  5. return View();
  6. }
  7. //根据ParentID查询子集
  8. public ActionResult GetArea(int ParentID)
  9. {
  10. var regions = new AboutDBManager().GetArea(ParentID);
  11. return Json(regions, JsonRequestBehavior.AllowGet);
  12. }
  1. public List<Area> GetArea(int ParentID)
  2. {
  3. string sql =string.Format("select PKID,ParentID,Name from area where ParentID={0}",ParentID);
  4. return DAL.DbManager<Area>.Instance.QueryBySQL(sql).ToList();
  5. }

ASP .NET DropDownList多级联动事件的更多相关文章

  1. DropDownList的多级联动

    DropDownList的多级联动的问题最典型的案例就是实现省市级三级联动的案例,对这个问题的描述是当选中山东省之后,在选择市的下拉菜单时,市一栏只出现山东省下面的市.对于县也是同样的道理. 我也做的 ...

  2. asp.net MVC 下拉多级联动及编辑

    多级联动实现,附源码.当前,部分代码是参与博客园其它网友. 新增,前台代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2 ...

  3. vue在多级联动时,一些情况不用watch而用onchange会更好

    onchange事件在内容改变且失去焦点时触发,因此在一些多级联动需要清空次级内容的时候,用onchange就非常有用了,尤其是浏览器会提前加载数据的情况下.有篇文章可以看一下,链接. PS:路漫漫其 ...

  4. Asp.net DropDownList 自定义样式(想怎么改就怎么改!)

    最近在做一个asp.net的项目,需要对默认的dropdownlist样式进行美化,固有的dropdownlist的小箭头实在让人无法接受,于是开始在百度,google 上下求索,天不负有心人,终于找 ...

  5. 为什么DropDownList的SelectedIndexChanged事件触发不了

    写的还行,转来大家看看 为什么DropDownList的SelectedIndexChanged事件触发不了? 为什么设置了DropDownList的AutoPostBack="True&q ...

  6. asp.net学习之GridView事件、GridViewRow对象

    原文:asp.net学习之GridView事件.GridViewRow对象 1. GridView控件的事件 GridView有很多事件,事件可以定制控件的外观或者行为.事件分为三类     1.1 ...

  7. JavaScript 多级联动浮动(下拉)菜单 (第二版)

    JavaScript 多级联动浮动(下拉)菜单 (第二版)   上一个版本(第一版请看这里)基本实现了多级联动和浮动菜单的功能,但效果不是太好,使用麻烦还有些bug,实用性不高.这次除了修改已发现的问 ...

  8. MVC实现多级联动

    前言 多级联动(省级联动)的效果,网上现成的都有很多,各种JS实现,Jquery实现等等,今天我们要讲的是在MVC里面,如何更方便.更轻量的实现省级联动呢? 实现效果如下: 具体实现 如图所示,在HT ...

  9. js 多级联动(省、市、区)

      js 多级联动(省.市.区) CreateTime--2018年4月9日17:10:38 Author:Marydon 方式一: 数据从数据库获取,ajax实现局部刷新 方式二: 数据从json文 ...

随机推荐

  1. 将HTML格式的String转化为HTMLElement 分类: C1_HTML/JS/JQUERY 2014-08-05 12:01 1217人阅读 评论(0) 收藏

    代码如下: <meta charset="UTF-8"> <title>Insert title here</title> </head& ...

  2. 【Samza系列】实时计算Samza中文教程(四)—API概述

    上一篇和大家一起宏观上学习了Samza平台的架构,重点讲了一下数据缓冲层和资源管理层.剩下的一块非常重要的SamzaAPI层本节作为重点为大家展开介绍.     当你使用Samza来实现一个数据流处理 ...

  3. Xshell Update

    http://blog.netsarang.com/1629/xshell-update-5-0-1332/ Xshell Update (5.0.1332) By Alan Kim Thursday ...

  4. Java-Maven项目引入UEditor图片上传组件jar包类库的5种方式

    最近,硬是和百度的UEditor组件杠上了.自己的个人官网项目,很容易就搞定了,公司的项目,尼玛,各种问题.项目多了,环境复杂了,解决问题的方法也得不断调整. 项目用Maven管理jar包,用到了UE ...

  5. Android与IOS的UUID的区别

    UUID含义是通用唯一识别码 (Universally Unique Identifier),这 是一个软件建构的标准,也是被开源软件基金会 (Open Software Foundation, OS ...

  6. 【t005】数字构造问题

    Time Limit: 1 second Memory Limit: 50 MB [问题描述] 给定一个只包含数字[0..9]的字符串,请使用字符串中的某些字符,构建一个能够整除15最大的整数.注意, ...

  7. 学习鸟哥的Linux私房菜笔记(5)——目录

    一.目录 目录在文件类型上用d来表示,用 / 分割目录层 Linux操作系统 都有且仅有一个起始目录,我们用一个单独的 /来表示,称其为根目录. 对每一个Shell和操作环境,都有一个当前的工作目录. ...

  8. KMP算法具体解释(贴链接)

    ---------------------------------------------------------------------------------------------------- ...

  9. 经典卷积神经网络的学习(一)—— AlexNet

    AlexNet 为卷积神经网络和深度学习正名,以绝对优势拿下 ILSVRC 2012 年冠军,引起了学术界的极大关注,掀起了深度学习研究的热潮. AlexNet 在 ILSVRC 数据集上达到 16. ...

  10. Sublime Text3中JSX支持Emmet快捷键

    在复习React的过程中,发现Sublime有些快捷键不能用了,如Emmet的Tab快速生成HTML代码只能用Ctrl+E快捷键,而不能用Tab键了,在网上找了很多文章,发现都有问题,最终自己通过下面 ...