ASP .NET DropDownList多级联动事件

it2022-06-24  166

思路

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

例子

数据结构

public class Area { public int PKID { get; set; } public int ParentID { get; set; } public string Name { get; set; } }

测试数据

  1

前台

<div> <span>地区搜索:</span>@Html.DropDownList("Provinces", new SelectList(ViewBag.Province as System.Collections.IEnumerable, "PKID", "Name"), "请选择")      <select id="Citys"> <option value="">请选择</option> </select>      <select id="Districts"> <option value="">请选择</option> </select>          <button onclick="GetResult()">获取当前选择</button> </div> <script> $("#Provinces").change(function () { var self = $(this); var parentId = self.val(); if (parentId != "") { $("#Province").val(self.find("option:selected").val()); var option = GetRegion(parentId); $("#Citys").html(option); $("#Districts").html("<option value=''>请选择</option>"); } else { $("#Citys").html("<option value=''>请选择</option>"); $("#Districts").html("<option value=''>请选择</option>"); } }); $("#Citys").change(function () { var self = $(this); var parentId = self.val(); if (parentId != "") { $("#City").val(self.find("option:selected").val()); $("#RegionID").val(parentId); var option = GetRegion(parentId); $("#Districts").html(option); } else { $("#Districts").html("<option value=''>请选择</option>"); } }); function GetRegion(ParentID) { var option = "<option value=''>请选择</option>"; $.ajax({ type: "get", url: "/AboutDB/GetArea", data: { "ParentID": ParentID }, async: false, success: function (city) { //拼接下拉框 $.each(city, function (index, item) { option += "<option value=" + item.PKID + ">" + item.Name + "</option>"; }); } }); //返回下拉框html return option; } function GetResult() { var Province = $("#Provinces").find("option:selected").text(); var City = $("#Citys").find("option:selected").text(); var District = $("#Districts").find("option:selected").text(); layer.alert(Province + "-" + City + "-" + District); } </script>

后台

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

转载于:https://www.cnblogs.com/Lulus/p/7873285.html

相关资源:数据结构—成绩单生成器

最新回复(0)