第十二讲: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"

})

})

 

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