C# 基于Bootstrap的三级联动

实现效果如图:

一、声明市、县、乡对应的下拉控件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="0"></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 = 0; 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 = 0; 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 = 0; 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);
        }

 

转载于:https://www.cnblogs.com/zhangjd/p/7895345.html

包括源代码、数据库文档、数据库创建SQL脚本。一套基于ASP.NET MVC+EF6+Bootstrap开发出来的框架源代码! 采用主流框架,容易上手,简单易学,学习成本低。可完全实现二次开发、基本满足80%项目需求。 可以帮助解决.NET项目70%的重复工作,让开发更多关注业务逻辑。既能快速提高开发效率,帮助公司节省人力成本,同时又不失灵活性。 支持SQLServer、MySQL、Oracle、SQLite、Access 等多数据库类型。模块化设计,层次结构清晰。内置一系列企业信息管理的基础功能。 操作权限控制精密细致,对所有管理链接都进行权限验证,可控制到导航菜单、功能按钮。 数据权限(精细化数据权限控制,控制到行级,列表级,表单字段级,实现不同人看不同数据,不同人对同一个页面操作不同字段 兼容目前最流行浏览器(IE8+、Chrome、Firefox、360浏览器) 1、前端技术 JS框架:Bootstrap、JQuery CSS框架:Bootstrap v3.3.4(稳定是后台,UI方面根据需求自己升级改造吧)。 客户端验证:jQuery Validation Plugin。 在线编辑器:ckeditor、simditor 上传文件:Uploadify 数据表格:jqGrid、Bootstrap Talbe 对话框:layer 页面布局:jquery.layout.js 图表插件:echarts、highcharts 2、后端技术 核心框架:ASP.NET MVC5、WEB API 持久层框架:EntityFramework 定时计划任务:Quartz.Net组件 安全支持:过滤器、Sql注入、请求伪造 服务端验证:实体模型验证、自己封装Validator 缓存框架:微软自带Cache、Redis 日志管理:Log4net、登录日志、操作日志 工具类:NPOI、Newtonsoft.Json、验证码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值