实现效果如图:

一、声明市、县、乡对应的下拉控件select

 <div class="form-group">
<label class="col-sm-1 control-label" for="ds_username">
所选区域:</label>
<div class="col-sm-2">
<select id="sl_shi" class="form-control">
<option value=""></option>
</select>
</div>
<div class="col-sm-2">
<select id="sl_xian" class="form-control">
</select>
</div>
<div class="col-sm-2">
<select id="sl_xiang" class="form-control">
</select>
</div>
<div class="col-sm-2">
<button type="button" class="btn btn-primary">
查询</button>
</div>
</div>

二、JS代码:三级联动改变上一级的值触发下一级的数据绑定,因为首次绑定不会触发改变事件,所以默认一个空列,让用户自己选择。

  <script type="text/javascript">
$(function () {//默认绑定省
ShiBind();
//绑定事件
$("#sl_shi").change(function () {
XianBind();
});
$("#sl_xian").change(function () {
XiangBind();
});
});
function ShiBind() {
$.ajax({
type: 'get',
url: 'jgdx.ashx?action=bindShi',
dataType: 'json',
success: function (datas) {//返回list数据并循环获取
var select = $("#sl_shi");
for (var i = ; i < datas.length; i++) {
select.append("<option value='" + datas[i].id + "'>"
+ datas[i].shi + "</option>");
}
$('.selectpicker').selectpicker('val', '');
$('.selectpicker').selectpicker('refresh');
}
});
}
function XianBind() {
var shi = $("#sl_shi").val();
//判断下拉框选中的值是否为空
if (shi == "") {
return;
}
$("#sl_xian").html("");
$("#sl_xiang").html("");
$.ajax({
type: "POST",
url: "jgdx.ashx",
data: { "action": "bindXian", "id": shi },
dataType: "JSON",
async: false,
success: function (datas) {//返回list数据并循环获取
var select = $("#sl_xian");
select.append("<option value='0'> </option>");
for (var i = ; i < datas.length; i++) {
select.append("<option value='" + datas[i].id + "'>"
+ datas[i].xian + "</option>");
}
$('.selectpicker').selectpicker('val', '');
$('.selectpicker').selectpicker('refresh');
}
});
}
function XiangBind() {
var shi = $("#sl_shi").val();
var xian = $("#sl_xian").val();
if (xian == "") {
return;
}
$("#sl_xiang").html("");
$.ajax({
type: "POST",
url: "jgdx.ashx",
data: { "action": "bindXiang", "xian": xian, "shi": shi },
dataType: "JSON",
async: false,
success: function (datas) {//返回list数据并循环获取
var select = $("#sl_xiang");
select.append("<option value='0'> </option>");
for (var i = ; i < datas.length; i++) {
select.append("<option value='" + datas[i].id + "'>"
+ datas[i].xiang + "</option>");
}
$('.selectpicker').selectpicker('val', '');
$('.selectpicker').selectpicker('refresh');
}
});
}
</script>

三、后台代码:从数据库读取数据,转换为json串,返回前台。

        public void ProcessRequest(HttpContext context)
{
string output = "";
string action = context.Request["action"].ToString();switch (action)
{case "bindShi":
output = BindShi(); //返回json格式:[{"id":"238","shi":"滨州市"},{"id":"236","shi":"德州市"}]
break;
case "bindXian":
output = BindXian(context); //[{"id":"2525","xian":"城阳区"},{"id":"2534","xian":"黄岛区"}]
break;
case "bindXiang":
output = BindXiang(context); //[{"id":"21195","xiang":"岙山卫镇"},{"id":"21191","xiang":"北安街道"}]
break;
default:
break;
}
context.Response.ContentType = "text/plain";
context.Response.Write(output);
}

C# 基于Bootstrap的三级联动的更多相关文章

  1. 基于JQ的三级联动菜单选择

    <!-- author:青芒 --> <!DOCTYPE html> <html lang="en"> <head> <met ...

  2. 基于Jquery实现省份、城市、区县三级联动

    前端感觉写的比较少,也是为了练手,下午没事用来写了这个三级联动,也是第一次写这东西. 据我了解,城市信息可以选择存在数据库或者直接写在前端,为了省事,我直接写在前端,下面是我的代码: <!DOC ...

  3. 基于ThinkPHP+AJAX的省市区三级联动

    练习,就当练习. 省市区三级联动,样式如下图所示: 1,导入两个js文件并且导入数据库文件. 两个js文件分别是jquery-2.1.4.min.js和jquery-1.js,数据库文件,见附件. 2 ...

  4. Ajax来实现下拉框省市区三级联动效果(服务端基于express)

    //服务端JS代码: //提供服务端的处理 const express = require('express'); const fs = require('fs'); const app = expr ...

  5. 基于jQuery的AJAX实现三级联动菜单

    最近学习jQuery,所以就写了一个关于中国省市县/区的三级联动菜单,权当相互学习,相互促进,特此记录. 下面是嵌套js的html文件: <!DOCTYPE html> <html ...

  6. 基于thinkphp和ajax的省市区三级联动

    练习,就当练习. 省市区三级联动,样式如下图所示: 1,导入两个js文件并且导入数据库文件. 两个js文件分别是jquery-2.1.4.min.js和jquery-1.js,数据库文件,见附件. 2 ...

  7. 【巷子】---vue基于mint-ui三级联动---【vue】

    一.基本配置 https://github.com/modood/Administrative-divisions-of-China 三级联动数据地址 二.vue基本配置 1.cnpm install ...

  8. android:省市县三级联动(基于json和spring)

    一.请看效果图": 二.程序的代码: 1.MainActivity.java package com.loveplusplus.loader.demo.ui; import org.json ...

  9. jQuery省市区三级联动插件

    体验效果:http://hovertree.com/texiao/bootstrap/4/支持PC和手机移动端. 手机扫描二维码体验效果: 代码如下: <!DOCTYPE html> &l ...

随机推荐

  1. 面向对象设计模式_生成器模式详解(Builder Pattern)

    首先提出一个很容易想到应用场景: 手机的生产过程:手机有非常多的子件(部件),成千上万,不同品牌的手机的生产过程都是复杂而有所区别的,相同品牌的手机在设计上也因客户需求多样化,大到型号,小到颜色,是否 ...

  2. 叮咚recovery——想刷什么包就刷什么包

    我手机vivo s11t,我之前试过刷机,刷过很多包,发现只有官网下载的相同版本的固件包可以成功刷入,其他的任何的包都不行,我弟弟的手机vivo x3L,遇见和我一样的情况,他想刷小米的MIUI,开始 ...

  3. 自定义MVC框架---第一章

    MVC基本介绍 介绍:  mvc是一种编程思想,用来解决开发项目的时候,代码如何编写,项目如何架构的问题,更具体一点就是解决多人协同开发时,如何分工协作的问题,从而提升开发效率 举一个例子:有一个人想 ...

  4. java语言环境jdk的安装和环境变量的配置

    一.jdk的安装 我安装的为64位的1.7.0_17版本的jdk,双击运行,全部默认下一步就行 此处可整改安装目录,然后点击下一步进行安装. 二.环境变量的配置 1.右键点击我的电脑à点击属性,出现如 ...

  5. 常用的Oracle函数收集

    to_char(); count(); avg(); sum(); to_date('时间','格式'); NVL(,); NVL2(); substr(); case   when  then   ...

  6. C++基于范围循环(range-based for loop)的陷阱

    C++的基于范围的循环是C++11出现的新特性,很方便,一定程度上替代了使用迭代器的for循环用法.不过基于范围的for循环有一个隐藏的陷阱,如果不注意可能会出现严重的内存错误. 举例说明 看下面这个 ...

  7. 【Django】 视图层说明

    [Django视图层] 视图层的主要工作是衔接HTTP请求,Python程序和HTML模板,使他们能够有机互相合作从模型层lou到数据并且反馈.说到视图层的工作就有以下几个方面要说 ■ URL映射 对 ...

  8. 获取请求主机IP地址,如果通过代理进来,则透过防火墙获取真实IP地址;

    package com.utils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.servlet.htt ...

  9. 本地不安装oracle,PLsql远程连接

    Oracle的Instant client工具包可以很好地解决本地不安装oracle,PLsql远程连接. 1.首先到Oracle网站下载Instant Client : http://www.ora ...

  10. canvas填充样式

    填充样式主要针对fillStyle.fillStyle除了可以赋值为color,还可以赋值渐变色,包括线性渐变色和径向渐变色,还是和css3里的内容类似. 一.线性渐变 1.设置线性渐变的填充样式 设 ...