侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

jQuery+Asp.Net实现省市二级联动功能的方法

前端  /  管理员 发布于 3年前   130

本文实例讲述了jQuery+Asp.Net实现省市二级联动功能的方法。分享给大家供大家参考,具体如下:

页面html:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ddlAjax.aspx.cs" Inherits="ThreeAjaxDrop_ddlAjax" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"><title>DropDownList三级联动</title><style type="text/css">*{margin:0; padding:0;}body{font-size:12px; font-family:Arial @宋体;}</style><script type="text/javascript" src="//article/../js/jquery-1.4.min.js"></script><script type="text/javascript">$(document).ready(function() {//加载完成后绑定省份数据$.getJSON("Default.aspx", function(data) { //data的数据格式[{"text":"北京","value":"0001"},{"text":"江西","value":"0031"}]//alert(data[0].text+"|"+data[0].value);$.each(data, function(index, value) {//alert(value.text + "|" + value.value);$("#selProvince").append("<option value='" + value.value + "'>" + value.text + "</option>");});});//省份的值改变,则要绑定出城市下拉框$("#selProvince").change(function(){document.getElementById("selArea").options.length=1; //先清掉县下拉框的的数据document.getElementById("selCity").options.length=1; //先清掉城市下拉框的的数据$.getJSON("HandlerDropDownAjax.ashx",{"type":"city","fid":$(this).val()},function(data){$.each(data, function(index, value) {$("#selCity").append("<option value='" + value.value + "'>" + value.text + "</option>");});});});//城市下拉框的值改变$("#selCity").change(function(){document.getElementById("selArea").options.length=1; //先清掉县下拉框的的数据$.getJSON("HandlerDropDownAjax.ashx",{"type":"area","fid":$(this).val()},function(data){$.each(data, function(index, value) {$("#selArea").append("<option value='" + value.value + "'>" + value.text + "</option>");});});});});</script></head><body><form id="form1" runat="server"><div>三级联动:<select id="selProvince"><option value="选择省份">==选择省份==</option></select> <select id="selCity"><option>==选择城市==</option></select>& amp;nbsp; <select id="selArea"><option>==选择县==</option></select></div></form></body></html>

asp.net部分:

(1)Default.aspx.cs

public partial class ThreeAjaxDrop_Default : System.Web.UI.Page{  protected void Page_Load(object sender, EventArgs e)  {    string sql = "select * from province";    string strTemp = "\"text\":\"{0}\",\"value\":\"{1}\""; //构造格式字符串 {"text":"北京","value":"00001"}    StringBuilder sb = new StringBuilder();    OleDbDataReader reader = OleDBHelper.ExecuteReader(sql);    while (reader.Read())    {      string str1 = string.Format(strTemp, reader["province"].ToString(), reader["provinceID"].ToString());      sb.Append("{"+str1+"},");    }    reader.Close();    string json = sb.ToString();    Response.Write("["+json.Substring(0,json.Length-1)+"]");  }}

(2)HandlerDropDownAjax.ashx

public class HandlerDropDownAjax : IHttpHandler {  public void ProcessRequest (HttpContext context) {    if (context.Request.QueryString["type"] != null && context.Request.QueryString["fid"] != null)    {      string type = context.Request.QueryString["type"].ToString(); //主要用于识别是查询city还是area表      string fid = context.Request.QueryString["fid"].ToString();   //城市或区域的父ID      string sql = "select * from " + type + " where father='" + fid + "'";      //构造数据的类型[{"text":"南昌","value":"0001"},{"text":"上饶","value":"0002"}]      //string strTemp = "{\"text\":\"{0}\",\"value\":\"{1}\"}";//这里犯了个错误:直接这样构造会出错,因为大括号里又有格式大括号,解析会出错      string strTemp = "\"text\":\"{0}\",\"value\":\"{1}\""; //构造格式字符串 {"text":"北京","value":"00001"}      StringBuilder sb = new StringBuilder();      OleDbDataReader reader = OleDBHelper.ExecuteReader(sql);      while (reader.Read())      {        string str1 = string.Format(strTemp, reader[2].ToString(), reader[1].ToString());        sb.Append("{" + str1 + "},"); //两边的大括号格式化后加上      }      reader.Close();      string json = sb.ToString();      context.Response.Write("[" + json.Substring(0, json.Length - 1) + "]"); //Substring的作用是去掉最后一个'逗号'    }  }  public bool IsReusable {    get {      return false;    }  }}

更多关于asp.net相关内容感兴趣的读者可查看本站专题:《asp.net优化技巧总结》、《asp.net字符串操作技巧汇总》、《asp.net操作XML技巧总结》、《asp.net文件操作技巧汇总》、《asp.net ajax技巧总结专题》及《asp.net缓存操作技巧总结》。

希望本文所述对大家asp.net程序设计有所帮助。


  • 上一条:
    AJax 把拿到的后台数据在页面中渲染的实例
    下一条:
    ajax动态获取数据库中的数据方法
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 在js的websocket客户端开发中遇到代码割裂情况解决方案(0个评论)
    • 在uni-app中使用Ucharts柱状图地步横向滚动条无法滑动解决方式(0个评论)
    • 在vue中实现移动端双指放大或缩小功能代码示例(0个评论)
    • jq中实现图片压缩、base64转成file后上传至服务器示例(0个评论)
    • 在JavaScript中实现批量下载OSS中的文件代码示例(0个评论)
    • 近期文章
    • goose数据库迁移工具介绍及使用流程步骤(0个评论)
    • 中国程序员“翻墙”为海外软件公司打工,105.8万工资被罚没!转知乎(0个评论)
    • 在go语言gin框架中使用Sharding(Gorm分表中间件)实现分表流程步骤(0个评论)
    • 在PHP提高性能方式之开启OPCache扩展及OPCache配置参数详解(0个评论)
    • 在js的websocket客户端开发中遇到代码割裂情况解决方案(0个评论)
    • Laravel框架中适用于Eloquent的日期过滤软件包:lara-date-filter(0个评论)
    • Laravel 10.24版本发布(0个评论)
    • go语言多项目批量更新依赖及自动调用jenkins构建流程步骤(0个评论)
    • 在go语言中实现数学pow(x^y 的幂次)代码示例(0个评论)
    • Laravel应用程序性能监控 (APM) 工具:Scout (0个评论)
    • 近期评论
    • 路人 在

      php中使用hyperf框架调用讯飞星火大模型实现国内版chatgpt功能示例中评论 教程很详细,如果加个前端chatgpt对话页面就完美了..
    • 博主 在

      科学上网翻墙之v2rayN-Core客户端免费公益节点使用教程中评论 @ mashrdn 多切换几个节点测试,免费ssr是没那么稳..
    • mashrdn 在

      科学上网翻墙之v2rayN-Core客户端免费公益节点使用教程中评论 V2rayn免费节点添加上去了,youtobe无法打开网页,是怎么回事..
    • 张伟 在

      科学上网翻墙之v2rayN-Core客户端免费公益节点使用教程中评论 3q!有用,不过免费节点隔天就要去git上复制新的导进去..
    • 博主 在

      科学上网翻墙访问Google , 上外网神器佛跳墙VPN(永久免费)使用流程步骤中评论 该篇教程已不能用了,告知大家,免的老有老铁问我!..
    • 2016-10
    • 2016-11
    • 2017-06
    • 2017-07
    • 2017-08
    • 2017-09
    • 2017-10
    • 2017-11
    • 2018-03
    • 2018-04
    • 2018-05
    • 2018-06
    • 2018-09
    • 2018-11
    • 2018-12
    • 2019-02
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2021-04
    • 2021-05
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-11
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-06
    • 2023-07
    • 2023-09
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客