EasyUI datagrid動態加載json數據


最近做一個項目,要求是兩張張表可能查找出10多種不同的結果集。

如果想只用一個表格就把全部的結果不同的顯示出來那么就肯定不同使用固定的字段名字,要通過動態加載后台返回來的數據把它顯示出來就必須動態加載column

具體看下面

 1 <!DOCTYPE html>
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 5     <link href="../Script/jquery-easyui-1.4.4/themes/default/easyui.css" rel="stylesheet" />
 6     <link href="../Script/jquery-easyui-1.4.4/themes/icon.css" rel="stylesheet" />
 7     <script src="../Script/jquery-1.8.2.js"></script>
 8     <script src="../Script/jquery-easyui-1.4.4/jquery.easyui.min.js"></script>
 9 
10     <script type="text/javascript">
11         $(function () {
12             //動態加載標題和數據
13             $.ajax({
14                 url: "../ashx/GetDataList.ashx",
15                 type: "post",
16                 dataType: "json",
17                 success: function (data) {
18                     var msg = $.parseJSON(data);
19                     $("#dg").datagrid({
20                         columns: [data.title]    //動態取標題
21                     });
22                     $("#dg").datagrid("loadData", data.rows);  //動態取數據
23                 }
24             });
25         });
26     </script>
27     <title></title>
28 </head>
29 <body>
30     <table id="dg" data-options="
31 rownumbers:true,
32 singleSelect:true,
33 autoRowHeight:false,
34 pagination:true,
35 resizeHandle:'right'">
36         <thead>
37             <tr></tr>
38         </thead>
39     </table>
40 </body>
41 </html>
前台View Code

后台代碼我只寫出關鍵的部分,在數據庫查詢出一個DataTable傳入,最后直接返回就是json對象

 1         /// <summary>
 2         /// 把DataTable數據轉換為Json格式
 3         /// </summary>
 4         /// <param name="dt">傳入DataTable數據</param>
 5         /// <returns></returns>
 6         public string DataTableToJson(DataTable dt, int pageTotal)
 7         {
 8             StringBuilder jsonBuilder = new StringBuilder();
 9             jsonBuilder.Append("{\"total\"");
10             jsonBuilder.Append(":");
11             jsonBuilder.Append(pageTotal);
12             jsonBuilder.Append(",\"rows");
13             jsonBuilder.Append("\":[");
14             for (int i = 0; i < dt.Rows.Count; i++)
15             {
16                 jsonBuilder.Append("{");
17                 for (int j = 0; j < dt.Columns.Count; j++)
18                 {
19                     jsonBuilder.Append("\"");
20                     jsonBuilder.Append(dt.Columns[j].ColumnName);
21                     jsonBuilder.Append("\":\"");
22                     jsonBuilder.Append(dt.Rows[i][j].ToString());
23                     jsonBuilder.Append("\",");
24                 }
25                 jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
26                 jsonBuilder.Append("},");
27             }
28             jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
29             jsonBuilder.Append("],");
30             jsonBuilder.Append("\"title");
31             jsonBuilder.Append(dt.TableName);
32             jsonBuilder.Append("\":[");
33             //這是循環獲取列名稱
34             for (int n = 0; n < dt.Columns.Count; n++)
35             {
36                 jsonBuilder.Append("{");
37                 jsonBuilder.Append("\"field");
38                 jsonBuilder.Append("\":\"");
39                 jsonBuilder.Append(dt.Columns[n].ColumnName);
40                 jsonBuilder.Append("\",");
41                 jsonBuilder.Append("\"title");
42                 jsonBuilder.Append("\":\"");
43                 jsonBuilder.Append(dt.Columns[n].ColumnName);
44                 jsonBuilder.Append("\"");
45                 jsonBuilder.Append("},");
46             }
47             jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
48             jsonBuilder.Append("},");
49 
50             jsonBuilder.Remove(jsonBuilder.Length - 2, 2);
51             jsonBuilder.Append("]");
52             jsonBuilder.Append("}");
53             return jsonBuilder.ToString();
54         }
后台View Code

如果你顯示不出來,那么就參考下面的格式,一定要符合這種格式,一定要符合這種格式,一定要符合這種格式,重要事情說三遍

 1 {"total":8,"rows":[
 2   {"id":"101","name":"正義無限公司","coding":"01","abbreviation":"正義","industryRegistrationId":"1123456","corporation":"張三"},
 3   {"id":"101","name":"正義無限公司","coding":"01","abbreviation":"正義","industryRegistrationId":"1123456","corporation":"張三"},
 4   {"id":"101","name":"正義無限公司","coding":"01","abbreviation":"正義","industryRegistrationId":"1123456","corporation":"張三"},
 5   {"id":"101","name":"正義無限公司","coding":"01","abbreviation":"正義","industryRegistrationId":"1123456","corporation":"張三"},
 6   {"id":"101","name":"正義無限公司","coding":"01","abbreviation":"正義","industryRegistrationId":"1123456","corporation":"張三"},
 7   {"id":"101","name":"正義無限公司","coding":"01","abbreviation":"正義","industryRegistrationId":"1123456","corporation":"張三"},
 8   {"id":"101","name":"正義無限公司","coding":"01","abbreviation":"正義","industryRegistrationId":"1123456","corporation":"張三"},
 9   {"id":"101","name":"正義無限公司","coding":"01","abbreviation":"正義","industryRegistrationId":"1123456","corporation":"張三"}
10 ],
11   "title":[
12     {
13       "field":"id",
14       "title":"公司自編碼"
15     },
16     {
17       "field":"name",
18       "title":"公司名稱"
19     },
20     {
21       "field":"coding",
22       "title":"編碼"
23     },
24     {
25       "field":"abbreviation",
26       "title":"公司簡稱"
27     },
28     {
29       "field":"industryRegistrationId",
30       "title":"工商注冊號"
31     },
32     {
33       "field":"corporation",
34       "title":"公司法人"
35     }
36   ]
37 }
json格式View Code


我是是參考這個大神做的,我也是弄很久不行就是因為json格式不對。

http://my.oschina.net/missGu/blog/393069?fromerr=ltaovswk

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM