ASP .NET DropDownList多级联动事件

2023-12-20 00:48

本文主要是介绍ASP .NET DropDownList多级联动事件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

思路

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

例子

数据结构

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"), "请选择")&nbsp;&nbsp;&nbsp;&nbsp;<select id="Citys"><option value="">请选择</option></select>&nbsp;&nbsp;&nbsp;&nbsp;<select id="Districts"><option value="">请选择</option></select>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<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>";});}});//返回下拉框htmlreturn 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();
}

这篇关于ASP .NET DropDownList多级联动事件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/514302

相关文章

MyBatis延迟加载与多级缓存全解析

《MyBatis延迟加载与多级缓存全解析》文章介绍MyBatis的延迟加载与多级缓存机制,延迟加载按需加载关联数据提升性能,一级缓存会话级默认开启,二级缓存工厂级支持跨会话共享,增删改操作会清空对应缓... 目录MyBATis延迟加载策略一对多示例一对多示例MyBatis框架的缓存一级缓存二级缓存MyBat

C#利用Free Spire.XLS for .NET复制Excel工作表

《C#利用FreeSpire.XLSfor.NET复制Excel工作表》在日常的.NET开发中,我们经常需要操作Excel文件,本文将详细介绍C#如何使用FreeSpire.XLSfor.NET... 目录1. 环境准备2. 核心功能3. android示例代码3.1 在同一工作簿内复制工作表3.2 在不同

在.NET项目中嵌入Python代码的实践指南

《在.NET项目中嵌入Python代码的实践指南》在现代开发中,.NET与Python的协作需求日益增长,从机器学习模型集成到科学计算,从脚本自动化到数据分析,然而,传统的解决方案(如HTTPAPI或... 目录一、CSnakes vs python.NET:为何选择 CSnakes?二、环境准备:从 Py

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

Go语言使用net/http构建一个RESTful API的示例代码

《Go语言使用net/http构建一个RESTfulAPI的示例代码》Go的标准库net/http提供了构建Web服务所需的强大功能,虽然众多第三方框架(如Gin、Echo)已经封装了很多功能,但... 目录引言一、什么是 RESTful API?二、实战目标:用户信息管理 API三、代码实现1. 用户数据

在ASP.NET项目中如何使用C#生成二维码

《在ASP.NET项目中如何使用C#生成二维码》二维码(QRCode)已广泛应用于网址分享,支付链接等场景,本文将以ASP.NET为示例,演示如何实现输入文本/URL,生成二维码,在线显示与下载的完整... 目录创建前端页面(Index.cshtml)后端二维码生成逻辑(Index.cshtml.cs)总结

解决hive启动时java.net.ConnectException:拒绝连接的问题

《解决hive启动时java.net.ConnectException:拒绝连接的问题》Hadoop集群连接被拒,需检查集群是否启动、关闭防火墙/SELinux、确认安全模式退出,若问题仍存,查看日志... 目录错误发生原因解决方式1.关闭防火墙2.关闭selinux3.启动集群4.检查集群是否正常启动5.

解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题

《解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题》:本文主要介绍解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4... 目录未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘打开pom.XM

javax.net.ssl.SSLHandshakeException:异常原因及解决方案

《javax.net.ssl.SSLHandshakeException:异常原因及解决方案》javax.net.ssl.SSLHandshakeException是一个SSL握手异常,通常在建立SS... 目录报错原因在程序中绕过服务器的安全验证注意点最后多说一句报错原因一般出现这种问题是因为目标服务器

使用easy connect之后,maven无法使用,原来需要配置-Djava.net.preferIPv4Stack=true问题

《使用easyconnect之后,maven无法使用,原来需要配置-Djava.net.preferIPv4Stack=true问题》:本文主要介绍使用easyconnect之后,maven无法... 目录使用easGWowCy connect之后,maven无法使用,原来需要配置-DJava.net.pr