zoukankan      html  css  js  c++  java
  • 获取json数据

    通过异步获取json来展示数据表格,性能提高不少。实例如下:

    前台:

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title></title>
        <script src="../jquery-3.1.1.min.js"></script>
        <style type="text/css">
           #table, #table tr,#table th, #table td {
            border:1px solid black;
            border-collapse:collapse;
            text-align:center;
            }
    
        </style>
        <script>
            $(function () {
                $("#showTable").click(function () {
                    var $table = $("#table");
                    var name = $("#userName").val();
                    var pwd = $("#pwd").val();
                    $.ajax({
                        url: "GetStudent.ashx",
                        type: "post",
                        dataType:"json",
                        data: { Name: name, Pwd: pwd },
                        success: function (data) {
                            if (!jQuery.isEmptyObject(data))
                            {
                                $("#table").empty();
                                $("span").html("");
                                $("<th>编号</th><th>姓名</th><th>性别</th> <th>出生日期</th><th>县/区编号</th> <th>专业编号</th><th with="50px">操作</th></tr>").appendTo("#table");
                                for (var i = 0; i < data.length; i++) {
                                    $("<tr><input type="hidden" value=""+data[i].Id+""/><td>" + data[i].Id + "</td><td>" +
                                        data[i].Name + "</td><td>" + data[i].Sex + "</td><td>" +
                                        data[i].Birthday + "</td><td>" + data[i].DistrictId + "</td><td>" + data[i].MajorId + "</td><td><a href="GetStudent.ashx?id="+data[i].Id+"">修改</a></td></tr>").appendTo("#table");
                                }
                                $("#table tr:even").css("background", "#EBE9C2");
                                $("a").css("text-decoration","none");
                            }
                            else
                            {
                                $("#table").empty();
                                $("span").html("无查询结果");
                            }
                        }
                    })
    
    
                    
                })
            })
        </script>
    </head>
    <body>
        <table class="table1">
            <tr>
                <td> 用户名:</td>
                <td><input type="text" id="userName"/></td>
            </tr>
            <tr>
                <td>密码:</td>
                <td><input type="password" id="pwd"/></td>
            </tr>
        </table>
        <input type="button" value="显示列表" id="showTable" />
    
        <div>
            <table id="table"></table>
        </div>
       
        <span></span>
      
    </body>
    </html>
    

     异步页:

      public void ProcessRequest(HttpContext context)
            {
                string id=context.Request.QueryString["Id"];
                if (string.IsNullOrEmpty(id))
                {
                    string result = "{}";
                    string name = context.Request.Params["Name"];
                    string pwd = context.Request.Params["Pwd"];
                    if (name == "admin" && pwd == "123456")
                    {
                        string sql = "select * from T_Student";
                        DataTable dt = SqlHelper.ExecuteDataTable(sql);
    
                        string json = DataTableToJson(dt);
                        result = json;
                    }
                    context.Response.Write(result);
                }
                else
                {
                    string sql = "select * from T_Student where Id=@Id";
                    SqlParameter [] sp=new SqlParameter[]{
                            new SqlParameter("@Id",id)
                    };
    
                   DataTable dt=  SqlHelper.ExecuteDataTable(sql, sp);
                    
                }
              
            }
    
            /// <summary>
            /// 将DataTable转化为json格式
            /// </summary>
            /// <param name="dt"></param>
            /// <returns></returns>
            public string DataTableToJson(DataTable dt)
            {
                StringBuilder Json = new StringBuilder();
                Json.Append("[");
                if (dt.Rows.Count > 0)
                {
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        Json.Append("{");
                        for (int j = 0; j < dt.Columns.Count; j++)
                        {
                            Json.Append(""" + dt.Columns[j].ColumnName.ToString() + "":"" + dt.Rows[i][j].ToString() + """);
                            if (j < dt.Columns.Count - 1)
                            {
                                Json.Append(",");
                            }
                        }
                        Json.Append("}");
                        if (i < dt.Rows.Count - 1)
                        {
                            Json.Append(",");
                        }
                    }
                }
                Json.Append("]");
                return Json.ToString();
            }
    

    之前不明白的一点是:什么时候用Json.parse()方法。测试之后表明,当$.ajax()方法中指明 dataType:"json" 时,无需用Json.parse()方法解析字符,只要后台传来的数据是正确的json格式就可以。如果不指定dataType,则data中得到的是字符串,如果想要解析为json输出到界面,则需用Json.parse()方法。

  • 相关阅读:
    个人心情闲扯贴~~
    近阶段学习感悟--大一下半学期
    HDU 1003 Max Sum 解题报告
    开始我的新园地--献给我的那些学长们
    软件公司职位简称
    Sql Server参数化查询之where in和like实现详解 [转]
    21个值得收藏的Javascript技巧
    [转]js刷新父窗体
    Oracle10g 连接 sqlserver 在server2008r2 中连接 iis7 .net4.0
    Oracle10g 连接 sqlserver hsodbc dblink 方式 非透明网关
  • 原文地址:https://www.cnblogs.com/move-up/p/6163496.html
Copyright © 2011-2022 走看看