ExtJS 創建動態加載樹


Ext 中導航樹的創建有兩種方式:1、首先將所有的數據讀出來,然后綁定到前台頁面。2、每點擊一個節點展開后加載子節點。在數據量比較小的時候使用第一種方式加載的會快一些,然而當數據量比較大的時候,我還是建議使用第二種方式的。這里我就來介紹一下第二種樹的展示方式。

源碼奉上:

 1 //創建model
 2 Ext.define("treeModel",{
 3   extend:"Ext.data.Model",
 4   fields:["OUID","OUName"]
 5 })
 6 //創建Store
 7 var treeStore=Ext.create("Ext.data.TreeStore",{
 8    model:"treeModel",
 9    proxy:{
10     type:"ajax",
11     url:"treeHandler.ashx",
12     extraParams:{pid:0}
13   },
14   listeners:{
15     beforeexpand:function(node)
16     {
17       this.proxy.extraParams.pid=node.raw.OUID;  
18     }
19   },
20   autoLoad:true
21 });
22 //創建樹
23 var tree=Ext.create("Ext.tree.Panel",{
24    store:treeStore,
25    userArrows:true,
26    rootVisible:false,
27    name:"OUID",
28     displayField:"OUName",
29     valueField:"OUID",
30   listeners:{
31     itemclick:function(view,rec)
32       {
33           
34       }
35   }
36 })

 

至此我們的一個動態樹的前台頁面就創建好了。

接下來我們需要做的就是在后台進行數據的處理,然后以json的格式發送給前台。

1 public string GetTree(int pid)
2 {
3    string json =string.Empty;
4   DataTable dt=tree;
5   json=JsonConvert.SerializeObject(dt);
6   return json;
7 }

注:參數 pid 是每次點擊樹的節點展開之后,向后台傳遞的當前節點的ID,這里作為子節點的父節點使用。

在將數據轉換為json格式的時候我這里采用了Newtonsoft 中的序列化函數,它可以講List,IList,DataTable 直接轉換為json的格式。


免責聲明!

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



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