通过XML文件实现省份、城市、区域三级联动

中国省市区三级联动JSON数据与JavaScript实现 三级联动是指在中国地图上实现省级、市级和区县级行政单位间关联查询的功能,它广泛应用于网站和应用程序中的地址选择、表单填写和地图标记等场景。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它以易于人们阅读和编写的形式,同时易于机器解析和生成。JSON基于JavaScript的一个子集。数据格式为键值对,以文本形式存储,易于人类阅读和编写,同时也易于机器解析和生成。它独立于语言——类似于XML,但是比XML更轻量、更小、更快,解析和生成也更简单。 阅读详情

1:前台js文件:

<script type="text/javascript">
    $(document).ready(function () {
        
        GetDataList("#Provinces", 0, "Provinces");

        $("#Provinces").change(function () {
            GetDataList("#Cities", $("#Provinces").val(), "Cities");
        });

        $("#Cities").change(function () {
            GetDataList("#Districts", $("#Cities").val(), "Districts");
        });

        $("#btnGet").click(function () {
            alert($("#Provinces").val() + "--" + $("#Provinces option:selected").text());
        });
    });

    function GetDataList(ddlId, id, action, selId) {
        $.getJSON("tools/SelectAjax.ashx", { action: action, id: id, rnd: Math.random() }, function (data) {
            $(ddlId).empty();

            $("<option value=\"-1\">不限</option>").appendTo($(ddlId));
            $.each(data, function (i, item) {
                $("<option></option>")
                .val(item.CityId)
                .attr("selected", item.CityId == selId)
                .text(item.CityName)
                .appendTo($(ddlId));
            });
        });
    }
</script>

2:前台html代码:

     <div>
            <select id="Provinces" name="Provinces">
                <option value="-1">不限</option>
            </select>
            <select id="Cities" name="Cities">
                <option value="-1">不限</option>
            </select>
            <select id="Districts" name="Districts">
                <option value="-1">不限</option>
            </select>
            <input id="btnGet" name="btnGet" type="button" value="Get" />
        </div>

3:后台代码:

 public class SelectAjax : IHttpHandler
    {
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";

            var action = context.Request.QueryString["action"];
            var id = context.Request.QueryString["id"];
            if (string.IsNullOrEmpty(id)) context.Response.Write("");
            switch (action)
            {
                case "Provinces":
                    context.Response.Write(GetProvinces());
                    break;
                case "Cities":
                    context.Response.Write(GetCities(id));
                    break;
                case "Districts":
                    context.Response.Write(GetDistricts(id));
                    break;
                default:
                    context.Response.Write("");
                    break;
            }
        }

        /// <summary>
        /// 获取省份集合
        /// </summary>
        /// <returns></returns>
        private string GetProvinces()
        {
            var xdoc = new XmlDocument();
            xdoc.Load(HttpContext.Current.Server.MapPath("Provinces.xml"));    //加载Xml文件  
            var provElem = xdoc.DocumentElement;   //获取根节点  
            if (provElem == null) return null;
            var provincesNodes = provElem.GetElementsByTagName("Province"); //获取Provinces子节点集合  
            var listArea= (from object node in provincesNodes
                let provId = ((XmlElement) node).GetAttribute("ID")
                let provName = ((XmlElement) node).GetAttribute("ProvinceName")
                select new Area()
                {
                    CityId = provId,
                    CityName = provName
                }).ToList();
            return Serialize(listArea);
        }

        /// <summary>
        /// 通过省份ID获取对应的城市
        /// </summary>
        /// <param name="provinceId">省份ID</param>
        /// <returns></returns>
        private string GetCities(string provinceId)
        {
            var xdoc = new XmlDocument();
            xdoc.Load(HttpContext.Current.Server.MapPath("Cities.xml"));    //加载Xml文件  
            var citieElem = xdoc.DocumentElement;   //获取根节点  
            if (citieElem == null) return null;
            var citieNodes = citieElem.GetElementsByTagName("City"); //获取Cities子节点集合  

            var listArea = (from object node in citieNodes
                            let citId = ((XmlElement)node).GetAttribute("ID")
                            let citName = ((XmlElement)node).GetAttribute("CityName")
                            let pid = ((XmlElement)node).GetAttribute("PID")
                            where pid == provinceId
                            select new Area()
                            {
                                CityId = citId,
                                CityName = citName
                            }).ToList();
            return Serialize(listArea);
        }
        
        /// <summary>
        /// 通过城市ID获取区域
        /// </summary>
        /// <param name="citieId">城市ID</param>
        /// <returns></returns>
        private string GetDistricts(string citieId)
        {
            var xdoc = new XmlDocument();
            xdoc.Load(HttpContext.Current.Server.MapPath("Districts.xml"));    //加载Xml文件  
            var districtElem = xdoc.DocumentElement;   //获取根节点  
            if (districtElem == null) return null;
            var citieNodes = districtElem.GetElementsByTagName("District"); //获取Districts子节点集合  

            var listArea = (from object node in citieNodes
                            let distrId = ((XmlElement)node).GetAttribute("ID")
                            let distrName = ((XmlElement)node).GetAttribute("DistrictName")
                            let cid = ((XmlElement)node).GetAttribute("CID")
                            where cid == citieId
                            select new Area()
                            {
                                CityId = distrId,
                                CityName = distrName
                            }).ToList();
            return Serialize(listArea);
        }

        /// <summary>
        /// Json序列化
        /// </summary>
        /// <typeparam name="T">泛型</typeparam>
        /// <param name="t">泛型</param>
        /// <returns>序列化</returns>
        private string Serialize(object obj)
        {
            JavaScriptSerializer js = new JavaScriptSerializer();
            return js.Serialize(obj);
        }

        /// <summary>
        /// Json反序列化
        /// </summary>
        /// <typeparam name="T">泛型</typeparam>
        /// <param name="strJson">泛型</param>
        /// <returns>反序列化</returns>
        private T Deserialize<T>(string strJson)
        {
            JavaScriptSerializer js = new JavaScriptSerializer();
            return js.Deserialize<T>(strJson);
        }

        public class Area
        {
            //城市ID
            public string CityId { get; set; }
            //城市名称
            public string CityName { get; set; }
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }

备注:XML文件请童鞋移步到 xml源文件 进行下载,谢谢!

效果截图:



c# winfrom 省市区三级联动 c# winfrom 省市区三级联动 ,无数据库 立即下载

相关推荐

省市县XML三级联动

省市县XML数据齐全 三级联动 轻松选择

基于Jquery和xml文件来实现省市区3级联查

              上篇博客是在SSM环境下实现的省市区3级联查,其实也就是查询3次数据库。这次是用Jquery和xml文件来实现省市区3级联查。 一.Demo结构                 用Jquery和xml文件实现没有在SSM环境下那么复杂,不需要导入jar包,而只需要导入Jquery文件即可。结构如下图:   二.index页面                在...

乔你那熊色 1915

最新全国城市区域(省市区code)数据xml格式

最新全国城市区域(省市区code)数据xml格式,

解析xml文件实现省市县三级联动

解析xml文件实现省市县三级联动 我是做Java程序开发的,js省市县三级级联。 首先说一下什么是js省市县三级级联?js省市县三级级联是指,当你选择一个省的时候,程序会默认的把该省的城市列入城市的下拉列表框中,同样的,当你选择一个城市的时候,程序会默认的把该城市的县列入县的下拉列表框中。 实现js省市三级联动需要两个文件。 一、xml文件; 二、html文件;   下面我简单的写了...

年轻就是资本,加油小飞! 382

最新的省市区数据xml格式

最新的省市区数据xml格式 , xml格式的资源城市区文件,已配置好,直接点击下载就好!

省市区xml文档

xml文档解析 省市区三级级联

全国 省市区 经纬度 (XML格式)

全国 省市区 经纬度 (XML格式) 标签(空格分隔): XML 网上找的资源,都是excel格式还有txt格式的,没有XML格式的,用起来不方便。所以就用JAVA把txt转换成XML格式的文件了。 Tips: 如果显示XML编码错误,可以用windows自带的记事本打开,然后"另存为",此处有编码选择,选择UTF-8,另存即可! XML文件如下: <?xml version=1.0 ...

weixin_30835649的博客 4878

中国省市列表XML文件

本人搜集的中国省市列表的xml文件 用与做省市联动

全国省市县(XML文件)

858

具身智能端侧硬件选型实战:从算力需求到芯片对比与避坑指南

在边缘计算和嵌入式AI快速发展的今天,端侧智能设备的落地不再单纯比拼芯片的标称算力。TOPS数值只是初筛指标,真实的推理性能还受内存带宽、数据精度、稀疏性以及散热功耗等多重因素制约。理解不同视觉感知、决策规划与语言交互任务对算力的差异化需求,是选型的第一步。本文从技术原理出发,剖析了Jetson Orin、地平线征程、RK3588等主流平台的实测表现,并揭示了散热设计、供电链路与软件生态这三个极易被忽略的隐形瓶颈。通过完整的部署调优实录,展示了量化、缓存与电源模式优化如何提升端侧推理效率,为具身智能、无人车

weixin_29164185的博客 360

保姆级教程:用OpenCV搞定鱼眼双目相机的标定与测距(附完整C++代码)

本文详细介绍了使用OpenCV进行鱼眼双目相机标定与测距的全流程,包括环境搭建、数据采集、单目标定、双目标定、立体校正和视差计算等核心步骤。通过完整的C++代码示例和参数调优指南,帮助开发者快速实现高精度的双目测距系统,适用于机器人导航、VR全景拍摄等领域。

weixin_42573113的博客 387

android城市三级联动解析xml,通过XML文件实现省份、城市、区域三级联动

1:前台js文件:$(document).ready(function () {GetDataList("#Provinces", 0, "Provinces");$("#Provinces").change(function () {GetDataList("#Cities", $("#Provinces").val(), "Cities");});$("#Cities").change(fun...

weixin_36136552的博客 312

Java电商秒杀系统性能优化(一)——电商秒杀系统框架回顾

电商秒杀系统框架回顾项目简介外部依赖框架回顾项目要点项目中存在的问题小结 课程是免费的,课程地址如下:SpringBoot搭建电商秒杀项目,课程真的很棒,作者的思路很清晰,建议各位读者可以跟着视频练习一下这个项目; 项目简介 通过SpringBoot快速搭建的前后端分离的电商基础秒杀项目。项目通过应用领域驱动型的分层模型设计方式去完成:用户otp注册、登陆、查看、商品列表、进入商品详情以及倒计时秒...

ghw15221836342的博客 3718

xml java省市县三级联动_jquery读取xml文件实现省市县三级联动的方法

本文实例讲述了jquery读取xml文件实现省市县三级联动的方法。分享给大家供大家参考。具体如下:页面代码如下:My JSP 'city.jsp' starting page$(document).ready(function(){//省$.ajax({url:"xml/City.xml",success:function(xml){$(xml).find("province").each(fun...

weixin_28957519的博客 153

AIGC游戏本地化:用AI实现多语言自动翻译

游戏本地化是游戏全球化战略的关键环节,传统人工翻译方式成本高、周期长。本文旨在探讨如何利用AIGC技术实现高效、准确、低成本的游戏多语言自动翻译解决方案。我们将覆盖从文本翻译到语音合成的完整本地化流程,重点关注AI技术在游戏特定语境下的应用优化。文章首先介绍游戏本地化的核心挑战和AI解决方案,然后深入讲解关键技术原理,接着通过实战项目演示具体实现,最后讨论应用场景和未来趋势。AIGC:人工智能生成内容,指利用AI技术自动生成文本、图像、音频等内容本地化(Localization)

AI 领航者的博客 1336

21、空间数据处理中的克里金方法及应用

本文介绍了空间数据处理中的克里金方法,特别是带外部漂移的克里金法(KED)及其在遥感数据融合和支持变化问题中的应用。讨论了克里金方法的基本原理、优缺点以及在不同空间分辨率遥感图像融合中的具体操作流程。同时,还涉及了地统计数据融合和支持变化问题的解决方案,包括块克里金法、面到点克里金法和多边形克里金法等。

gold的博客 86

php xml三级联动,jquery+xml实现三级联动步骤详解

这次给大家带来jquery+xml实现三级联动步骤详解,jquery+xml实现三级联动步骤详解的注意事项有哪些,下面就是实战案例,一起来看一下。页面代码如下:My JSP 'city.jsp' starting page$(document).ready(function(){//省$.ajax({url:"xml/City.xml",success:function(xml){$(xml).f...

weixin_33072655的博客 121

php环境如何实现国密SM2相关功能

🏆本文收录于《优快云问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!

**My Coding Family** 1615

jquery ajax实现省市区三级联动

<select id="province"> <option>选择省份</option> </select> <select id="city"> <option>选择城市</option> </select> <select id="district"> <option>选择区域</option> </select

sj2017的博客 2809

DLMS/COSEM协议的理解体会

DLMS是通信协议,COSEM是电表建模规范。HDLC帧基本格式为0x7e......

一个bug是bug,多个bug能work 8311

【STM32项目】基于AI技术的多功能消防机器人(完整工程资料源码)

机器人通过巡逻扫描环境空间与障碍物、定位导航、探测物体/环境进行建模/自动地图测绘、扫描火焰、获取温湿度大小、获取空气安全情况来判断当前环境地点是否安全,检测到温度过高或检测到易燃、烟雾、有毒气体或摄像头识别到火焰时能够通过高压水泵喷射器来实现火焰隔离工作,蜂鸣器进行现场鸣笛报警,同时将当前环境温湿度大小、空气情况、环境地图、是否安全信息,将各个传感器来接收获取到的信息,实时发送到用户手机中的微信小程序,实现与用户远程监视功能,用户同时也能通过手机与电脑远程下发命令来操控机器人来实现交互功能

嵌入式技术开发 1万+

Jquery+XML实现三级联动

前台: 请选择 JS: http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js">> $(document).ready(functi

萝卜丝机007 3783

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Ajax异步请求struts的JSON机制(省市区三级联动)

1.struts.xml &lt;?xml version="1.0" encoding="UTF-8" ?&gt; &lt;!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/str...

weixin_33734785的博客 145

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

三级联动菜单省----市-----区

city.html 解析xml文件实现省市级联下拉菜单 请选择相应省下面的市 请选择相应省下面的区 ...

129

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

mysql 省市县三级联动查询_三级联动查询全国省市区(xml与数据库)

提供有china.xml和china.sql文件,实现全国省市区的三级联动效果一、xml实现import java.awt.EventQueue;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.border.EmptyBorder;import javax.swing.JComboBox;import j...

weixin_29111277的博客 944
上一篇: 如何用Entity Framework 6 连接Sqlite数据库
下一篇: 手机触摸板 日期选择控件整理
make1828
博客等级 码龄19年 60粉丝 105原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值