zoukankan      html  css  js  c++  java
  • 2017-6-6 ASP.NET Ajax版页面无刷新三级联动

    实现效果:

    页面代码:

    <div>
            <select id="sel1" style="100px;">
                
            </select>
            <select id="sel2" style="100px;">
               
            </select>
            <select id="sel3" style="100px;">
                
            </select>
        </div>

    Js代码:

     change(1);
    
        function change(a)
        {
           
            if (a == "1")
            {
                $.ajax({
                    url: "select.ashx",
                    data: { "code": "0001" },
                    type: "post",
                    dataType: "json",
                    success: function (msg) {
                        $("#sel1").html("");
                        for (i in msg)
                        {
                          
                            var str = "<option value='" + msg[i].code + "'>" + msg[i].name + "</option>";
                            $("#sel1").append(str);
                        }
                        change(2);
                    },
                    error:function()
                    {
                        alert("aaa");
                    },
                    beforeSend: function () {
                        $("#sel1").html("");
                        var str = "<option value='null'>数据正在加载...</option>";
                        $("#sel1").append(str);
                    }
    
                });
            }
            if (a == "2") {
                $.ajax({
                    url: "select.ashx",
                    data: { "code": $("#sel1").val() },
                    type: "post",
                    dataType: "json",
                    success: function (msg) {
                        $("#sel2").html("");
                        for (i in msg) {
                            
                            var str = "<option value='" + msg[i].code + "'>" + msg[i].name + "</option>";
                            $("#sel2").append(str);
                        }
                        change(3);
                    },
                    //如果弹窗跳出,代表服务端路径错误,服务端出错,服务端没有返回指定的json数据格式
                    error: function () {
                        alert("aaa");
                    },
                    //请求服务端的时候执行(不管对错)一开始加载数据就会执行
                    beforeSend: function () {
                        $("#sel2").html("");
                        var str = "<option value='null'>数据正在加载...</option>";
                        $("#sel2").append(str);
                    },
                    //处理完毕之后,不管返回到sussess还是error中   数据加载完毕执行
                    complete:function(){
                    
                    }
    
                });
    
    
            }
            if (a == "3") {
                $.ajax({
                    url: "select.ashx",
                    data: { "code": $("#sel2").val() },
                    type: "post",
                    dataType: "json",
                    success: function (msg) {
                        $("#sel3").html("");
                        for (i in msg) {
                           
                            var str = "<option value='" + msg[i].code + "'>" + msg[i].name + "</option>";
                            $("#sel3").append(str);
                        }
                    },
                    error: function () {
                       
                    },
                    beforeSend: function () {
                        $("#sel3").html("");
                        var str = "<option value='null'>数据正在加载...</option>";
                        $("#sel3").append(str);
                    }
    
                });
            }
    
        }
    
        $("#sel1").change(function () {
            change(2);
        });
    
        $("#sel2").change(function () {
            change(3);
        });
    三级联动Js代码

    一般处理程序代码:

    using (cityDataClassesDataContext con = new cityDataClassesDataContext()) 
            {
                StringBuilder str = new StringBuilder();
                str.Append("[");
                string aa = context.Request["code"];
                int count = 0;
                List<ChinaStates> clist = con.ChinaStates.Where(r=>r.ParentAreaCode == aa).ToList();
                foreach(ChinaStates ch in clist )
                {
                    if (count > 0) { str.Append(","); }
                    str.Append( "{"name":""+ch.AreaName+"","code":""+ch.AreaCode+""}");
                    count++;
                }
    
                str.Append("]");
    
                context.Response.Write(str);
                context.Response.End();
            }
  • 相关阅读:
    软件命名规则
    从命令行git转到Tortoise
    如何让浏览器不解析html?
    说几点我觉得谷歌浏览器不好的地方
    移动端开发:使用jQuery Mobile还是Zepto
    开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别
    给大家讲个故事,感受一下什么叫CF。不知道的请认真听。
    cmd中utf-8编码的问题
    web前端关于html转义符的常用js函数
    js实例分析JavaScript中的事件委托和事件绑定
  • 原文地址:https://www.cnblogs.com/qingnianxu/p/6957311.html
Copyright © 2011-2022 走看看