Extjs4 向TreeStore中載入資料

2022-08-26 09:15:12 字數 1822 閱讀 9481

這裡分別介紹使用json本地資料,jsp和xml向treestore中載入資料的實現方式

1.本地json資料:

注意txt檔案中葉子節點一定要加上leaf:true的屬性,否則檔案會無限展開的

var tree = new

ext.tree.treepanel(,

root:

})});

tree.render('tree');

01-04-02.txt內容如下:

[,,

]},]},

]

最後的效果如下:

2.使用jsp提供後台資料:

注意一定要為樹形中的節點設定id,不能重複,後台會根據id來判斷究竟是哪個節點正在展開,從而返回對應的資料,如果不設定root的id,ext會預設根節點的id為root。

前台**如下:

var tree = new

ext.tree.treepanel(,

root:

})});

tree.render('tree');

後台jsp**:

response.setcharacterencoding("utf-8");

//獲得node引數,對應的是正在展開的節點id

string node = request.getparameter("node");

system.out.println(node);

string json = "";

if ("0".equals(node)) ,]";

} else

if ("1".equals(node)) ,]";

} else

if ("2".equals(node)) ,]";

} else

if ("11".equals(node)) ,]";

}response.getwriter().print(json);

%>

分析下後台**:

樹形非同步讀取的關鍵是node引數,當某個節點展開時,treestore會根據設定的url位址去後台讀取資料。而當傳送請求時,treestore會把這個節點的id作為引數一起傳送到後台去。對後台來說,只要獲得node引數,就知道是哪個節點正在展開。接著會根據節點的id返回對應的json資料。

效果如下:

3.xml資料:

var store = ext.create('ext.data.treestore', ,

reader:

},sorters: [,],

root:

});//create the tree

var tree = ext.create('ext.tree.panel', ]

},height: 350,

width: 400,

title: 'directory listing',

renderto: 'tree',

collapsible:

true

});

效果如下:

ExtJs4 問題總結

在用到ext grid的時候,如果後台計算量大或者返回的資料量過大導致載入資料時間超時,時間超時後會發現grid沒有資料顯示。解決的方法是把超時的時間設定大點,ext的ajax預設請求都是30秒。設定方法如下 ext.ajax.timeout 90000 一秒 1000毫秒。上面設定是把timeou...

學習Extjs4心得

其實,學習extjs4的過程中,經常的檢視api。因為一開始接觸這個,所以一開始不會檢視api,但後來玩久了,也就能夠很熟練的玩了。其實,不管事什麼開發語言還是框架,學會檢視api是我們必須要做的事 在開發過程中,最糾結的就是除錯,我用的是firefox,裡面有個firebug,是除錯js的神器,可...

ExtJs4 基礎必備

解壓有20多兆,別怕,真正執行的沒這麼大。認識下這個包的檔案結構吧。1.類的命名規範 2 原始檔的命名規則 3 方法和變數的命名規則 4 屬性的命名規則 onready 只有在ext框架全部載入完後才能在客戶端的 中使用ext,而ext的onready正是用來註冊在ext框架及頁面的html 載入完...