zoukankan      html  css  js  c++  java
  • 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);
            }
  • 相关阅读:
    互联网协议入门
    【HTTP】图解HTTPS
    《计算机本科生理想的学习计划》
    VC++ TinyXML
    TinyXML 在vs2010 VC++使用
    Hadoop2.4.1入门实例:MaxTemperature
    xcode6
    Android利用广播监听设备网络连接(断网)的变化情况
    编程算法
    Google的Guava之IO升华
  • 原文地址:https://www.cnblogs.com/zhangjd/p/7895345.html
Copyright © 2011-2022 走看看