全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

本文实例讲述了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="../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程序设计有所帮助。


# jQuery  # Asp.Net  # 省市  # 二级  # 联动  # asp.net省市三级联动的DropDownList+Ajax的三种框架(aspnet/Jquery  # ASP.NET MVC下拉框联动实例解析  # asp.net DropDownList实现二级联动效果  # ASP.NET中DropDownList和ListBox实现两级联动功能  # asp.net下使用AjaxPro实现二级联动代码  # asp.net DropDownList 三级联动下拉菜单实现代码  # asp.net两级联动(包含添加和修改)  # 适用与firefox ASP.NET无刷新二级联动下拉列表  # ASP.NET实现级联下拉框效果实例讲解  # ASP.NET Ajax级联DropDownList实现代码  # 下拉框  # 北京  # 操作技巧  # 绑定  # 上饶  # 相关内容  # 南昌  # 又有  # 感兴趣  # 给大家  # 江西  # 犯了  # 更多关于  # 主要用于  # 所述  # 程序设计  # 宋体  # 为大  # 则要  # 数据格式 


相关文章: 如何在阿里云虚拟主机上快速搭建个人网站?  如何访问已购建站主机并解决登录问题?  单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?  建站之星价格显示格式升级,你的预算足够吗?  利用JavaScript实现拖拽改变元素大小  建站之星在线客服如何快速接入解答?  制作门户网站的参考文献在哪,小说网站怎么建立?  如何在搬瓦工VPS快速搭建网站?  C++用Dijkstra(迪杰斯特拉)算法求最短路径  如何通过多用户协作模板快速搭建高效企业网站?  如何通过虚拟主机快速搭建个人网站?  如何通过万网虚拟主机快速搭建网站?  如何在Tomcat中配置并部署网站项目?  网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?  相册网站制作软件,图片上的网址怎么复制?  如何在Windows 2008云服务器安全搭建网站?  学校为何禁止电信移动建设网站?  ,交易猫的商品怎么发布到网站上去?  建站之星收费标准详解:套餐费用及年费价格表一览  ,想在网上投简历,哪几个网站比较好?  如何自定义建站之星网站的导航菜单样式?  c++ stringstream用法详解_c++字符串与数字转换利器  建站之星如何助力企业快速打造五合一网站?  建站主机空间推荐 高性价比配置与快速部署方案解析  如何在建站之星绑定自定义域名?  网站制作公司排行榜,抖音怎样做个人官方网站  Thinkphp 中 distinct 的用法解析  制作网站怎么制作,*游戏网站怎么搭建?  建站之星手机一键生成:多端自适应+小程序开发快速建站指南  如何彻底删除建站之星生成的Banner?  C++如何编写函数模板?(泛型编程入门)  建站主机解析:虚拟主机配置与服务器选择指南  打鱼网站制作软件,波克捕鱼官方号怎么注册?  制作网站的软件免费下载,免费制作app哪个平台好?  建站之星后台密码遗忘或太弱?如何重置与强化?  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  如何通过西部数码建站助手快速创建专业网站?  长沙做网站要多少钱,长沙国安网络怎么样?  如何通过建站之星自助学习解决操作问题?  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建  如何制作算命网站,怎么注册算命网站?  已有域名如何快速搭建专属网站?  如何通过PHP快速构建高效问答网站功能?  电商网站制作价格怎么算,网上拍卖流程以及规则?  高端建站三要素:定制模板、企业官网与响应式设计优化  我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?  如何用狗爹虚拟主机快速搭建网站?  北京网站制作的公司有哪些,北京白云观官方网站?  如何用已有域名快速搭建网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。