zoukankan      html  css  js  c++  java
  • [转]jquery getJSON 数据联动(采用序列化和反序列化获取数据) .

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
        <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
        <script type="text/javascript">
            $(document).ready(function () {
               
                GetByJquery("#area", 0);
               
                $("#area").change(function () {
                    GetByJquery("#subarea", $("#area").val());
                });

                $("#btnGet").click(function () {
                    alert($("#area").val() + "--" + $("#area option:selected").text());
                });
            });

            function GetByJquery(ddlId, id, selId) {
                $.getJSON("SelectAjax.ashx", { action: "area", id: id, rnd: Math.random() }, function (data) {
                    $(ddlId).empty();
                    $("<option value="-1">不限</option>").appendTo($(ddlId));
                    $.each(data, function (i, item) {
                        $("<option></option>")
                        .val(item.AreaID)
                        .attr("selected", item.AreaID == selId)
                        .text(item.AreaName)
                        .appendTo($(ddlId));
                    });
                });
            }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <select id="area" name="area">
                <option value="-1">不限</option>
            </select>
            <select id="subarea" name="subarea">
                <option value="-1">不限</option>
            </select>
            <input id="btnGet" name="btnGet" type="button" value="Get" />
        </div>
        </form>
    </body>
    </html>

    SelectAjax.ashx文件:

    /// <summary>
        /// SelectAjax 的摘要说明
        /// </summary>
        public class SelectAjax : IHttpHandler
        {

            public void ProcessRequest(HttpContext context)
            {
                context.Response.ContentType = "text/plain";

                string action = context.Request.QueryString["action"];


                if (("area").Equals(action))
                {
                    string id = context.Request.QueryString["id"];
                    if (!string.IsNullOrEmpty(id))
                        context.Response.Write(GetArea(id));
                    else context.Response.Write("");
                }
            }


            private string GetArea(string id)
            {
                List<Area> areaList = new List<Area>();

                if (id == "0")
                {
                    areaList.Add(new Area
                    {
                        AreaID = "01",
                        AreaName = "罗湖区",
                        PID = "0"
                    });
                    areaList.Add(new Area
                    {
                        AreaID = "02",
                        AreaName = "福田区",
                        PID = "0"
                    });
                }

                if (id == "01")
                {
                    areaList.Add(new Area
                    {
                        AreaID = "0101",
                        AreaName = "莲塘",
                        PID = "01"
                    });
                    areaList.Add(new Area
                    {
                        AreaID = "0102",
                        AreaName = "黄贝岭",
                        PID = "01"
                    });
                }
                if (id == "02")
                {
                    areaList.Add(new Area
                    {
                        AreaID = "0201",
                        AreaName = "八卦岭",
                        PID = "02"
                    });
                    areaList.Add(new Area
                    {
                        AreaID = "0202",
                        AreaName = "华强",
                        PID = "02"
                    });
                }

                return Serialize(areaList);
            }

            /// <summary>
            /// Json序列化
            /// </summary>
            /// <typeparam name="T">泛型</typeparam>
            /// <param name="t">泛型</param>
            /// <returns>序列化</returns>
            private string Serialize(object obj)
            {
                JavaScriptSerializer js = new JavaScriptSerializer();
                return js.Serialize(obj);
            }
            /// <summary>
            /// Json反序列化
            /// </summary>
            /// <typeparam name="T">泛型</typeparam>
            /// <param name="strJson">泛型</param>
            /// <returns>反序列化</returns>
            private T Deserialize<T>(string strJson)
            {
                JavaScriptSerializer js = new JavaScriptSerializer();
                return js.Deserialize<T>(strJson);
            }

            public class Area
            {
                public string AreaID { get; set; }
                public string AreaName { get; set; }
                public string PID { get; set; }
            }

            public bool IsReusable
            {
                get
                {
                    return false;
                }
            }
        }

  • 相关阅读:
    MyEclipse使用经验总结
    CSDN-markdown编辑器使用简介
    struts2提供的校验器
    JUnit4 中@AfterClass @BeforeClass @after @before的区别对比
    JAVA中文字符编码问题详解 控制台输出
    Statement、PreparedStatement
    struts2 文件上传
    SQL RIGHT JOIN 关键字:语法及案例剖析
    SQL LEFT JOIN 关键字:语法及案例剖析
    SQL INNER JOIN 关键字:语法及案例剖析
  • 原文地址:https://www.cnblogs.com/seapub/p/3349375.html
Copyright © 2011-2022 走看看