8.TreePanel

8.TreePanel

目录:

1.最简单的树

2.有孙子节点的树

3.事件处理

4.带链接的树

5.动态加载树

6.动态节点和静态节点混用,及树的属性和节点属性设置

7.TreeSelectionModel选择模型

8.可编辑的树

9.按指定属性进行排序

10.替换Tree中图片

一:最简单的树

Ext.onReady(function(){

//根节点

var root = new Ext.tree.TreeNode({

id:"root",

text:"根节点"

})

//添加子节点

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

id:"child1",

text:"子节点1"

}))

var treePanel = new Ext.tree.TreePanel({

renderTo:"TestTree",

width:100,

height:100,

root:root //根节点,

})

})

二:有孙子节点的树

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:"TestTree",

width:300,

height:400,

root:root

})

})

三:事件处理

Ext.onReady(function(){

//根节点

var root = new Ext.tree.TreeNode({

id:"root",

text:"根节点"

})

//添加子节点

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

id:"child1",

text:"子节点1"

}))

var treePanel = new Ext.tree.TreePanel({

renderTo:"TestTree",

width:400,

height:300,

root:root

});

//事件处理

treePanel.on("click",function(node,event){//根节点事件

alert("点击了" + node.text);

})

root.on("click",function(node,event){//子节点事件

alert("点击了" + node.text);

})

})

四:带链接的树

Ext.onReady(function(){

//根节点

var root = new Ext.tree.TreeNode({

id:"root",

text:"网"

})

//添加子节点

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

id:"child1",

text:"首页",

href:"#", //存在连接及打开方式

hrefTarget:"_blank"

}))

//添加子节点

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

id:"child2",

text:"论坛首页",

href:"#",

hrefTarget:"_blank"

}))

var treePanel = new Ext.tree.TreePanel({

renderTo:"TestTree",

width:400,

height:300,

root:root

});

})

五:动态加载树

Ext.onReady(function(){

var loader=new Ext.tree.TreeLoader({//用于加载子节点数据

url:"treedata.js"

});

var root=new Ext.tree.AsyncTreeNode({

id:"root",

text:"根节点",

loader:loader

});

var tree=new Ext.tree.TreePanel({

renderTo:"TestTree",

root:root,

width:400,

height:400

});

})

treedata.js

[

{

id:"childnode1",

text:"子节点1",

leaf:true //是否是叶子节点,部位叶节点就要写出其子节点

},

{

id:"childnode2",

text:"子节点2",

leaf:true

},

{

id:"childnode3",

text:"子节点3",

leaf:true

}

]

treedata.js

[

{

id:"childnode1",

text:"子节点1",

leaf:true

},

{

id:"childnode2",

text:"子节点2",

leaf:false,//是否是叶子节点,部位叶节点就要写出其子节点

children:[

{

id:"gchildnode1",

text:"孙子节点1",

leaf:true

},

{

id:"gchildnode2",

text:"孙子节点2",

leaf:true

}

]

},

{

id:"childnode3",

text:"子节点3",

leaf:true

}

]

六:动态节点和静态节点混用

Ext.onReady(function(){

var loader=new Ext.tree.TreeLoader({

url:"treedata.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

});

})

树的一些常用配置属性。

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:true,//是否显示根节点

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

})

})

AsyncServer2.jsp

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

<%

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

response.getWriter().write(tree);

%>

AsyncServer2.jsp

<%@ 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("没有选择任何节点");

}

}

}

]

})

})

八:可编辑的树

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:"hello",

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);//可编辑树,将创建数放入即可

})

九:按指定属性进行排序

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:"gChildNode4",

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:"hello",

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"//根据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"

})

})

相关推荐

dnf攻击键是哪个键
365bet篮球比分直播

dnf攻击键是哪个键

📅 07-09 👁️ 2416
净水之心在哪打
365bet在线官网

净水之心在哪打

📅 08-05 👁️ 6450
房地产销售提成一般是多少 佣金点在3%-6%之间
365体育中国

房地产销售提成一般是多少 佣金点在3%-6%之间

📅 07-23 👁️ 7658
好孩子婴儿推车质量怎么样?推荐十大口碑机型,性价比出众!
最新电影《宿敌》1号专线HD中字版高清完整版免费在线观看
15个最好的Kodi皮肤你可以试试
365bet在线官网

15个最好的Kodi皮肤你可以试试

📅 07-26 👁️ 4869