此样例依赖EXT3.0
将以下三个文件放在ext3/examples/tree目录下即可
需要部署在WEB服务器上才能正常运行
主要是对原来的样例进行了修改,提供全选功能。
check-tree.js
/*!
* Ext JS Library 3.0.0
* Copyright(c) 2006-2009 Ext JS, LLC
* licensing@extjs.com
* http://www.extjs.com/license
*/
Ext.onReady(function(){
var tree = new Ext.tree.TreePanel({
renderTo:'tree-div',
title: 'My Task List',
height: 300,
width: 400,
useArrows:true,
autoScroll:true,
animate:true,
enableDD:true,
containerScroll: true,
rootVisible: false,
frame: true,
root: {
nodeType: 'async'
},
// auto create TreeLoader
dataUrl: 'check-nodes.json',
listeners: {
'checkchange': function(node, checked){
console.log('------------checkchange----------checked['+checked+']---');
console.log(node);
//父节点
if(false)
{
for(var i=0;i<node.childNodes.length;i++)
{
node.childNodes[i].attributes.checked = checked;
node.childNodes[i].checked=checked;
node.childNodes[i].getUI().checkbox.checked = checked;
}
}
//叶子节点
else if(true){
for(var i=0;i<node.childNodes.length;i++)
{
node.childNodes[i].attributes.checked = checked;
node.childNodes[i].checked=checked;
node.childNodes[i].getUI().checkbox.checked = checked;
if(node.childNodes[i].childNodes!=undefined)
{
var childNode=node.childNodes[i];
for(var j=0;j<childNode.childNodes.length;j++)
{
childNode.childNodes[j].attributes.checked = checked;
childNode.childNodes[j].checked=checked;
childNode.childNodes[j].getUI().checkbox.checked = checked;
}
}
}
//取消选中
if(!checked)
{
if(node.parentNode.leaf!=undefined)
{
node.parentNode.attributes.checked=false;
node.parentNode.getUI().checkbox.checked=false;
if(node.parentNode.parentNode.leaf!=undefined)
{
node.parentNode.parentNode.attributes.checked=false;
node.parentNode.parentNode.getUI().checkbox.checked=false;
}
}
}else
{
var childNodes=node.parentNode.childNodes;
var isAllSelect=true;
for(var i=0;i<childNodes.length;i++)
{
//未选中
if(!childNodes[i].attributes.checked)
{
isAllSelect=false;
break;
}
}
//如果是全选 ,则将你节点设置为选中
if(isAllSelect)
{
node.parentNode.attributes.checked=true;
node.parentNode.getUI().checkbox.checked=true;
}
}
}
}
},
buttons: [{
text: 'Get Completed Tasks',
handler: function(){
var msg = '', selNodes = tree.getChecked();
Ext.each(selNodes, function(node){
if(msg.length > 0){
msg += ', ';
}
msg += node.text;
});
Ext.Msg.show({
title: 'Completed Tasks',
msg: msg.length > 0 ? msg : 'None',
icon: Ext.Msg.INFO,
minWidth: 200,
buttons: Ext.Msg.OK
});
}
}]
});
tree.getRootNode().expand(true);
});
check-tree.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Checkbox TreePanel</title>
<link rel="stylesheet" type="text/css" href="../../resources/css/ext-all.css" />
<!-- GC -->
<!-- LIBS -->
<script type="text/javascript" src="../../adapter/ext/ext-base.js"></script>
<!-- ENDLIBS -->
<script type="text/javascript" src="../../ext-all.js"></script>
<script type="text/javascript" src="check-tree.js"></script>
<!-- Common Styles for the examples -->
<link rel="stylesheet" type="text/css" href="../shared/examples.css" />
<style type="text/css">
.complete .x-tree-node-anchor span {
text-decoration: line-through;
color: #777;
}
</style>
</head>
<body>
<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
<h1>Checkbox Selection in a TreePanel</h1>
<p>This example shows simple checkbox selection in a tree. It is enabled on leaf nodes by simply
setting <tt>checked:true/false</tt> at the node level.</p>
<p>This example also shows loading an entire tree structure statically in one load call, rather than
loading each node asynchronously.</p>
<p>The js is not minified so it is readable. See <a href="check-tree.js">check-tree.js</a>.</p>
<div id="tree-div"></div>
</body>
</html>
check-nodes.json
[{
text: 'To Do',
cls: 'folder',
leaf: false,
checked: false,
children: [{
text: 'Go jogging',
leaf: true,
checked: false
},{
text: 'Take a nap',
leaf: true,
checked: false
},{
text: 'Climb Everest',
leaf: true,
checked: false
}]
},{
text: 'Grocery List',
cls: 'folder',
leaf: false,
checked: false,
children: [{
text: 'Bananas',
leaf: true,
checked: false
},{
text: 'Milk',
leaf: true,
checked: false
},{
text: 'Cereal',
leaf: true,
checked: false
},{
text: 'Energy foods',
cls: 'folder',
leaf: false,
checked: false,
children: [{
text: 'Coffee',
leaf: true,
checked: false
},{
text: 'Red Bull',
leaf: true,
checked: false
}]
}]
},{
text: 'Remodel Project',
cls: 'folder',
leaf: false,
checked: false,
children: [{
text: 'Finish the budget',
leaf: true,
checked: false
},{
text: 'Call contractors',
leaf: true,
checked: false
},{
text: 'Choose design',
leaf: true,
checked: false
}]
}]
相关推荐
"Ext checktree"是基于Ext JS库的一个组件,专门用于创建可勾选的树形控件。在Web应用中,这种控件常用于展现层级结构的数据,并允许用户进行多级选择。下面我们将深入探讨Ext checktree的相关知识点。 首先,我们...
在实际开发中,你还需要了解EXT Tree的API,如`tree.store.load()`用于加载数据,`node.expand()`和`node.collapse()`用于展开和折叠节点,`tree.getSelectionModel().select(node)`用于选择特定节点等。EXT Tree还...
复选框树(Checked Tree)允许用户通过复选框来选择或取消选择树结构中的节点。这种功能对于需要用户进行多级选择的情况非常有用,例如在权限管理、目录结构操作或者配置设置中。以下是对这个特性的详细解释: 1. *...
`Ext.tree.TreeLoader`是Ext JS库中的一个组件,它负责加载和解析树形结构的数据,而JSON(JavaScript Object Notation)则是一种轻量级的数据交换格式,非常适合于在服务器和客户端之间传输数据。我们将通过实例...
Ext的Tree控件提供了许多强大的功能,例如支持树形结构的展开和折叠、节点的添加和删除等等。在这里,我们使用Ext的Tree控件来加载树形结构的数据,并将其展现在用户面前。 下面是后台生成树形结构数据的示例代码:...
本篇将深入探讨如何在`Ext JS`中实现Tree组件的不同节点拥有不同的右键菜单,这对于提供定制化的用户体验是非常有用的。 `Ext JS`的Tree组件是一个可扩展的树形结构,用于展示层级数据。在默认情况下,Tree的所有...
在IT领域,拖拽功能是用户界面中常见的一种交互方式,尤其在数据可视化和管理工具中,例如ExtJS的树形组件(Tree)。本项目主要关注如何在完成拖拽操作后,更新并保存树节点的新顺序。ExtJS是一个强大的JavaScript库...
2. **复选框(check)**:在每个节点上添加复选框,用户可以通过勾选或取消勾选来选择或取消选择节点。这些选择状态可以传递到其子节点,实现级联效果。 3. **级联行为**:当一个节点被选中或取消选中时,其所有子...
`Ext.Tree.Panel`是基于`Ext.Panel`的扩展,它包含了一个内部的`TreeView`,用于渲染树节点。在HTML文件中,`<div>`元素(如`<div id="tree-panel"></div>`)被用来作为`TreePanel`的容器。 2. **初始化和配置**:...
【标题】"ext-tree.rar_ext_ext tr_ext tre_ext.tr_ext.tree" 暗示这是一个关于Ext JS库中TreePanel组件的实例,其中可能包含了用于创建和管理数据结构的树形视图,以及与数据库交互的功能。 【描述】"ext的树的...
### 关于ExtJS生成树节点并添加链接的知识点 #### 1. ExtJS与树形菜单简介 在Web开发领域,ExtJS是一个非常强大的JavaScript框架,它提供了丰富的UI组件库,帮助开发者快速构建复杂的前端应用。其中,树形菜单...
5. **拖放功能(Drag and Drop)**:GWT-Ext-Tree 支持拖放操作,允许用户重新排列树中的节点,或者从外部源(如文件系统)拖动数据到树中。这对于需要用户手动组织信息的应用场景非常有用。 6. **分页和无限滚动...
extjs 可编辑的表格树,每个单元格自定义编辑组件,可以自适应列宽,只有源码与例子,运行实例要修改路径,不然图片不能显示,注意etree.jsp的js引入路径 支持Ext2.x以上版本 如运行不了EmailTo : codeme9@gmail....
EXT JS Tree组件的高级特性还包括树节点的检查框、分页加载、拖放排序等,开发者可以根据项目的具体需求选择使用。总之,EXT JS Tree组件是一个功能强大且灵活的工具,对于需要展示层次信息的Web应用来说,它提供了...
var tree = Ext.getCmp('treeId'); // 监听checkchange事件 tree.on('checkchange', function(node) { // 在这里处理被选中的节点 }); ``` #### 2. 使用cascade方法遍历所有节点 `cascade`方法可以遍历TreePanel...
在EXT JS中,树形组件(Tree Panel)常用于展现层级结构的数据,而扩展CHECKBOX功能则允许用户对树节点进行多选操作。 在EXT JS的Tree Panel中,要实现复选框功能,我们需要自定义UI Provider。UI Provider是EXT JS...
EXT提供了丰富的组件库,其中就包括TREE组件,它允许展示和操作数据结构为树形的视图。在这个场景中,"JSP EXT 遍历 TREE"涉及到的是如何在JSP页面上使用EXT框架来遍历和操作TREE组件。 首先,EXT-all.css和ext-all...
EXT Tree提供了丰富的功能,包括节点的动态加载、拖放操作、节点选择以及自定义图标和样式。 在EXT Tree的使用实例中,我们通常会涉及到以下几个关键知识点: 1. **配置项与属性**:EXT Tree允许通过配置项定制其...
ExtTree是Ext JS库中的一个组件,用于创建和展示树形结构的数据。它在Web应用程序中广泛使用,特别是在需要组织和导航层次结构信息时。在本案例中,“extTree例子点击出现界面”指的是用户在浏览ExtTree时,通过点击...