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

相关文章

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

在.NET平台使用C#为PDF添加各种类型的表单域的方法

《在.NET平台使用C#为PDF添加各种类型的表单域的方法》在日常办公系统开发中,涉及PDF处理相关的开发时,生成可填写的PDF表单是一种常见需求,与静态PDF不同,带有**表单域的文档支持用户直接在... 目录引言使用 PdfTextBoxField 添加文本输入域使用 PdfComboBoxField

Python开发文字版随机事件游戏的项目实例

《Python开发文字版随机事件游戏的项目实例》随机事件游戏是一种通过生成不可预测的事件来增强游戏体验的类型,在这篇博文中,我们将使用Python开发一款文字版随机事件游戏,通过这个项目,读者不仅能够... 目录项目概述2.1 游戏概念2.2 游戏特色2.3 目标玩家群体技术选择与环境准备3.1 开发环境3

C#如何动态创建Label,及动态label事件

《C#如何动态创建Label,及动态label事件》:本文主要介绍C#如何动态创建Label,及动态label事件,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#如何动态创建Label,及动态label事件第一点:switch中的生成我们的label事件接着,