第十二講:ExtJS組件之TreePanel(下)

示例一:樹的一些常用配置屬性。

Ext.onReady(function(){

 

var loader=new Ext.tree.TreeLoader({

url:"treedata3.js"

});

 

var root=new Ext.tree.TreeNode({

id:"root",

text:"根節點"

});

 

root.appendChild(new Ext.tree.TreeNode({

id:"child1",

text:"子節點1"

}))

 

root.appendChild(new Ext.tree.AsyncTreeNode({

id:"child2",

text:"子節點2",

loader:loader

}))

 

var tree=new Ext.tree.TreePanel({

renderTo:"TestTree",

root:root,

width:400,

height:400,

animate:false,//收縮動畫

autoHeight:true, //自動高度

enableDrag:true, //是否可以拖動

//enableDD:true, //drap和drop

enableDrop:true, //放置節點

lines:false,//節點間虛線

rootVisible:false,//是否顯示根節點

trackMouseOver:true,//是否顯示經過時效果

useArrows:true//是否使用小箭頭

});

})

示例二:節點的一些常用配置屬性。

Ext.onReady(function(){

Ext.QuickTips.init();

 

var loader=new Ext.tree.TreeLoader({

url:"treedata3.js"

});

 

var root=new Ext.tree.TreeNode({

id:"root",

text:"根節點",

checked:true,  //true則在text前有個選中的複選框,false則text前有個未選中的複選框,默認沒有任何框框

expanded:true, //是否展開

qtip:"根節點",  //提示信息

singleClickExpand:true //單擊文本展開

});

 

root.appendChild(new Ext.tree.TreeNode({

id:"child1",

text:"子節點1"

}))

 

root.appendChild(new Ext.tree.AsyncTreeNode({

id:"child2",

text:"子節點2",

loader:loader

}))

 

var tree=new Ext.tree.TreePanel({

renderTo:"TestTree",

root:root,

width:400,

height:400

});

})

示例三:從JSP中獲得數據並構造動態樹。

Ext.onReady(function(){

//根節點

var root = new Ext.tree.AsyncTreeNode({

id:"root",

text:"根節點",

loader:new Ext.tree.TreeLoader({

url:"AsyncServer2.jsp"

})

})

 

var treePanel = new Ext.tree.TreePanel({

renderTo:"AsyncTree",

width:300,

height:400,

root:root

})

})

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<%

String tree = "[{id:'childnode1',text:'子節點',leaf:false}]";

response.getWriter().write(tree);

%>

 

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<%

StringBuffer tree = new StringBuffer();

tree.append("[");

tree.append("{text:'子節點1',id:'son1',leaf:true},");

tree.append("{text:'子節點2',id:'son2',leaf:true},");

tree.append("{text:'子節點3',id:'son3',leaf:true}");

tree.append("]");

response.getWriter().write(tree.toString());

%>

 

示例四:TreeSelectionModel選擇模型。

Ext.onReady(function(){

//根節點

var root = new Ext.tree.TreeNode({

id:"root",

text:"根節點"

})

 

//子節點

var childNode1 = new Ext.tree.TreeNode({

id:"chileNode1",

text:"子節點1"

})

 

//孫子節點

var gChildNode1 = new Ext.tree.TreeNode({

id:"gChildNode1",

text:"孫子節點1"

})

 

//孫子節點

var gChildNode2 = new Ext.tree.TreeNode({

id:"gChildNode2",

text:"孫子節點2"

})

 

//孫子節點

var gChildNode3 = new Ext.tree.TreeNode({

id:"gChildNode3",

text:"孫子節點3"

})

 

childNode1.appendChild(gChildNode1);

childNode1.appendChild(gChildNode2);

childNode1.appendChild(gChildNode3);

 

//子節點

var childNode2 = new Ext.tree.TreeNode({

id:"chileNode2",

text:"子節點2"

})

 

//子節點

var childNode3 = new Ext.tree.TreeNode({

id:"chileNode3",

text:"子節點3"

})

 

root.appendChild(childNode1);

root.appendChild(childNode2);

root.appendChild(childNode3);

 

var treePanel = new Ext.tree.TreePanel({

renderTo:"TestTree11",

width:300,

height:400,

root:root,

bbar:[

{

text:"獲得選擇的節點",

handler:function(){

var sm = treePanel.getSelectionModel();

var sn = sm.getSelectedNode();

if(sn != null) {

alert(sn.text);

}else {

alert("沒有選擇任何節點");

}

}

}

]

})

})

示例五:選擇多個節點。

Ext.onReady(function(){

//根節點

var root = new Ext.tree.TreeNode({

id:"root",

text:"根節點"

})

 

//子節點

var childNode1 = new Ext.tree.TreeNode({

id:"chileNode1",

text:"子節點1"

})

 

//孫子節點

var gChildNode1 = new Ext.tree.TreeNode({

id:"gChildNode1",

text:"孫子節點1"

})

 

//孫子節點

var gChildNode2 = new Ext.tree.TreeNode({

id:"gChildNode2",

text:"孫子節點2"

})

 

//孫子節點

var gChildNode3 = new Ext.tree.TreeNode({

id:"gChildNode3",

text:"孫子節點3"

})

 

childNode1.appendChild(gChildNode1);

childNode1.appendChild(gChildNode2);

childNode1.appendChild(gChildNode3);

 

//子節點

var childNode2 = new Ext.tree.TreeNode({

id:"chileNode2",

text:"子節點2"

})

 

//子節點

var childNode3 = new Ext.tree.TreeNode({

id:"chileNode3",

text:"子節點3"

})

 

root.appendChild(childNode1);

root.appendChild(childNode2);

root.appendChild(childNode3);

 

var treePanel = new Ext.tree.TreePanel({

renderTo:"TestTree11",

width:300,

height:400,

root:root,

selModel : new Ext.tree.MultiSelectionModel(),

bbar:[

{

text:"獲得選擇的節點",

handler:function(){

var sm = treePanel.getSelectionModel();

var sn = sm.getSelectedNodes();

var length = sn.length;

if(length != 0) {

alert(length);

}else {

alert("沒有選擇任何節點");

}

}

}

]

})

})

示例六:可編輯的樹。

new Ext.tree.TreeEditor(treePanel);

 

示例七:按指定屬性進行排序。

new Ext.tree.TreeSorter(treePanel,{

property:"id"

})

示例八:替換Tree中圖片。

Ext.onReady(function(){

//根節點

var root = new Ext.tree.TreeNode({

id:"root",

text:"根節點",

icon:"folder.jpg"

})

 

root.on("click",function(){

root.getUI().getIconEl().src="folder2.jpg"

});

 

//子節點

var childNode1 = new Ext.tree.TreeNode({

id:"chileNode1",

text:"子節點1",

icon:"folder.jpg"

})

 

//孫子節點

var gChildNode1 = new Ext.tree.TreeNode({

id:"gChildNode1",

text:"孫子節點1",

icon:"folder.jpg"

})

 

//孫子節點

var gChildNode2 = new Ext.tree.TreeNode({

id:"gChildNode2",

text:"孫子節點2",

icon:"folder.jpg"

})

 

//孫子節點

var gChildNode3 = new Ext.tree.TreeNode({

id:"gChildNode3",

text:"孫子節點3",

icon:"folder.jpg"

})

 

childNode1.appendChild(gChildNode1);

childNode1.appendChild(gChildNode2);

childNode1.appendChild(gChildNode3);

 

//子節點

var childNode2 = new Ext.tree.TreeNode({

id:"chileNode3",

text:"子節點2"

})

 

//子節點

var childNode3 = new Ext.tree.TreeNode({

id:"chileNode2",

text:"子節點3"

})

 

root.appendChild(childNode1);

root.appendChild(childNode2);

root.appendChild(childNode3);

 

var treePanel = new Ext.tree.TreePanel({

renderTo:"TestTree11",

width:300,

height:400,

root:root,

selModel : new Ext.tree.MultiSelectionModel(),

bbar:[

{

text:"獲得選擇的節點",

handler:function(){

var sm = treePanel.getSelectionModel();

var sn = sm.getSelectedNodes();

var length = sn.length;

if(length != 0) {

alert(length);

}else {

alert("沒有選擇任何節點");

}

}

}

]

});

 

new Ext.tree.TreeSorter(treePanel,{

property:"id"

})

})

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章