ExtJS是一個開源的JavaScript框架,它提供了豐富的UI組件和數(shù)據(jù)處理功能。其中,樹(Tree)組件是非常常用且強大的一個組件。ExtJS樹組件支持初始化時使用Json作為數(shù)據(jù)源,也支持在運行時通過Ajax加載Json數(shù)據(jù)。
使用Json數(shù)據(jù)作為ExtJS樹組件的數(shù)據(jù)源非常方便。以下是一個示例Json數(shù)據(jù):
{ "text": "Root", "expanded": true, "children": [ { "text": "Node 1", "leaf": true }, { "text": "Node 2", "children": [ { "text": "Node 2.1", "leaf": true }, { "text": "Node 2.2", "leaf": true } ] } ] }
在上面的Json數(shù)據(jù)中,最外層是一個對象,有三個屬性:text表示節(jié)點的顯示文本,expanded表示該節(jié)點是否展開,children表示該節(jié)點的子節(jié)點。子節(jié)點可以是一個簡單的葉子節(jié)點(leaf為true),也可以是一個擁有子節(jié)點的節(jié)點。
在ExtJS中,使用Json數(shù)據(jù)作為樹組件的數(shù)據(jù)源非常方便。只需要在創(chuàng)建樹組件時設置好數(shù)據(jù)源即可。以下是一個簡單的示例:
var tree = Ext.create('Ext.tree.Panel', { title: 'Tree Demo', height: 200, width: 300, store: Ext.create('Ext.data.TreeStore', { root: { text: 'Root', expanded: true, children: [ { text: 'Node 1', leaf: true }, { text: 'Node 2', expanded: true, children: [ { text: 'Node 2.1', leaf: true }, { text: 'Node 2.2', leaf: true } ] } ] } }), rootVisible: false });
在上面的代碼中,先創(chuàng)建了一個樹組件tree,然后創(chuàng)建了一個TreeStore數(shù)據(jù)源。在TreeStore的配置中,root屬性設置了樹組件的根節(jié)點,其中使用了上面提到的Json數(shù)據(jù)。
最后指定store屬性為創(chuàng)建的TreeStore,設置rootVisible為false,隱藏根節(jié)點,就完成了樹組件的創(chuàng)建。
綜上所述,使用Json數(shù)據(jù)作為ExtJS樹組件的數(shù)據(jù)源非常方便。只需要按照Json數(shù)據(jù)的格式,創(chuàng)建一個TreeStore數(shù)據(jù)源,并配置到樹組件的store屬性即可。