easyui-tree綁定數據的幾種方式


沒想到easyui對json數據格式要求的那么嚴謹,折騰了半天

第一種直接使用標簽方式,很容易就加載出來了:

 1 <ul class="easyui-tree">
 2         <li>
 3             <span>My Documents</span>
 4             <ul>
 5                 <li data-options="state:'closed'">
 6                     <span>Photos</span>
 7                     <ul>
 8                         <li>
 9                             <span>Friend</span>
10                         </li>
11                         <li>
12                             <span>Wife</span>
13                         </li>
14                         <li>
15                             <span>Company</span>
16                         </li>
17                     </ul>
18                 </li>
19                 <li>
20                     <span>Program Files</span>
21                     <ul>
22                         <li>Intel</li>
23                         <li>Java</li>
24                         <li>Microsoft Office</li>
25                         <li>Games</li>
26                     </ul>
27                 </li>
28                 <li>index.html</li>
29                 <li>about.html</li>
30                 <li>welcome.html</li>
31             </ul>
32         </li>
33     </ul>

第二種,在js中綁定:

 <ul id="myTree"></ul>
$('#myTree').tree({ method: 'get', url: 'tree_data1.json' });

注意:easyui tree獲取數據的HTTP方法默認是post,但是用post的時候卻報了謂詞錯誤, 所以指定了get ----》需要查查,還不了解因果。

三,用data直接綁json:

 $.ajax({ type: 'GET', url: 'tree_data1.json', success: function (result) { var myJson = eval('(' + result + ')'); $('#myTree').tree({ data: myJson }); } });

這種方式綁定下面的這種json數據格式是有效的,但是方法二卻綁不上:

[{ 'text':'.Net','state':'closed','children':[{'text':'C#'},{'text':'asp.Net'}]},{'text':'Java'}]

 一般最好用雙引號

第四種:與第二種js綁定其實都是一樣的只是寫在元素標簽上了而已

 <ul class=" easyui-tree" data-options=" url:'JsonHandler.ashx'">

JsonHandler.ashx是asp.net中的一般處理文件,輸出json串,當然這個返回的接送數據也要和第二種的json一致,不然還是綁不上

相關參考http://www.zi-han.net/case/easyui/datagrid&tree.html#tree

效果圖:

                                                      

 

 后台根據id獲取多級樹:

創建樹的實體類大概寫了幾個樹常用到的屬性

1 public class TreeEntity {
2     public string id { get; set; }
3     public string text { get; set; }
4     public string iconCls {
5         get { return "icon-group-bank"; }
6     }
7     public List<TreeEntity> children { get; set; }
8  }

一般處理處理程序序列化輸出樹:

 1   public void ProcessRequest(HttpContext context) {
 2 
 3         Int32 groupId = (Int32)context.Session["LoginUserGroupID2"];
 4         string groupName = SqlDataHelper.GetGroupNameById(groupId);
 5 
 6         List<TreeEntity> list = new List<TreeEntity>();
 7         list.Add(new TreeEntity() {
 8             id = groupId.ToString(),
 9             text = groupName,
10             children = GetTreeChildren(groupId)
11         });
12         string responseString = ClassHelper.ObjectToJSON(list);//序列化樹實例
13         context.Response.ContentType = "text/plain";
14         context.Response.Write(responseString);
15     }
16     /// <summary>
17     /// 根據ID獲取子節點對象
18     /// </summary>
19     /// <param name="groupId"></param>
20     /// <returns></returns>
21     private static List<TreeEntity> GetTreeChildren(Int32 groupId) {
22         List<GroupEntity> groupList = SqlDataHelper.GetUserGroupsById(groupId);
23         List<TreeEntity> treeList = new List<TreeEntity>();
24         if (groupList.Count < 1) {
25             return null;
26         }
27         else {
28             for (int i = 0; i < groupList.Count; i++) {
29                 TreeEntity tree = new TreeEntity();
30                 tree.id = groupList[i].GroupID.ToString();
31                 tree.text = groupList[i].GroupName;
32                 tree.children = GetTreeChildren(groupList[i].GroupID);
33                 treeList.Add(tree);
34             }
35             return treeList;
36         }
37     }

 

 

 


免責聲明!

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



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