`

EXT CHECKTREE EXAMPLE 树节点选择样例

 
阅读更多

此样例依赖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 checktree"是基于Ext JS库的一个组件,专门用于创建可勾选的树形控件。在Web应用中,这种控件常用于展现层级结构的数据,并允许用户进行多级选择。下面我们将深入探讨Ext checktree的相关知识点。 首先,我们...

    EXT 树形结构样例

    在实际开发中,你还需要了解EXT Tree的API,如`tree.store.load()`用于加载数据,`node.expand()`和`node.collapse()`用于展开和折叠节点,`tree.getSelectionModel().select(node)`用于选择特定节点等。EXT Tree还...

    Ext TreePanel Checked Ext复选框树

    复选框树(Checked Tree)允许用户通过复选框来选择或取消选择树结构中的节点。这种功能对于需要用户进行多级选择的情况非常有用,例如在权限管理、目录结构操作或者配置设置中。以下是对这个特性的详细解释: 1. *...

    Ext.tree.TreeLoader附带封装的json类

    `Ext.tree.TreeLoader`是Ext JS库中的一个组件,它负责加载和解析树形结构的数据,而JSON(JavaScript Object Notation)则是一种轻量级的数据交换格式,非常适合于在服务器和客户端之间传输数据。我们将通过实例...

    利用Ext来实现的静态树(一次加载所有节点的树)

    Ext的Tree控件提供了许多强大的功能,例如支持树形结构的展开和折叠、节点的添加和删除等等。在这里,我们使用Ext的Tree控件来加载树形结构的数据,并将其展现在用户面前。 下面是后台生成树形结构数据的示例代码:...

    Ext 中的Tree实现不同节点不同的右键菜单

    本篇将深入探讨如何在`Ext JS`中实现Tree组件的不同节点拥有不同的右键菜单,这对于提供定制化的用户体验是非常有用的。 `Ext JS`的Tree组件是一个可扩展的树形结构,用于展示层级数据。在默认情况下,Tree的所有...

    完成Ext 拖拽树后对新的树节点顺序进行保存

    在IT领域,拖拽功能是用户界面中常见的一种交互方式,尤其在数据可视化和管理工具中,例如ExtJS的树形组件(Tree)。本项目主要关注如何在完成拖拽操作后,更新并保存树节点的新顺序。ExtJS是一个强大的JavaScript库...

    ext 级联选择的树形控件

    2. **复选框(check)**:在每个节点上添加复选框,用户可以通过勾选或取消勾选来选择或取消选择节点。这些选择状态可以传递到其子节点,实现级联效果。 3. **级联行为**:当一个节点被选中或取消选中时,其所有子...

    Ext.Tree.Panel

    `Ext.Tree.Panel`是基于`Ext.Panel`的扩展,它包含了一个内部的`TreeView`,用于渲染树节点。在HTML文件中,`&lt;div&gt;`元素(如`&lt;div id="tree-panel"&gt;&lt;/div&gt;`)被用来作为`TreePanel`的容器。 2. **初始化和配置**:...

    ext-tree.rar_ext_ext tr_ext tre_ext.tr_ext.tree

    【标题】"ext-tree.rar_ext_ext tr_ext tre_ext.tr_ext.tree" 暗示这是一个关于Ext JS库中TreePanel组件的实例,其中可能包含了用于创建和管理数据结构的树形视图,以及与数据库交互的功能。 【描述】"ext的树的...

    ext生成树节点带链接

    ### 关于ExtJS生成树节点并添加链接的知识点 #### 1. ExtJS与树形菜单简介 在Web开发领域,ExtJS是一个非常强大的JavaScript框架,它提供了丰富的UI组件库,帮助开发者快速构建复杂的前端应用。其中,树形菜单...

    gwt-ext-tree

    5. **拖放功能(Drag and Drop)**:GWT-Ext-Tree 支持拖放操作,允许用户重新排列树中的节点,或者从外部源(如文件系统)拖动数据到树中。这对于需要用户手动组织信息的应用场景非常有用。 6. **分页和无限滚动...

    extjs 可编辑的表格树 Ext.tree.ColumnTree Ext.tree.ColumnTreeEditor

    extjs 可编辑的表格树,每个单元格自定义编辑组件,可以自适应列宽,只有源码与例子,运行实例要修改路径,不然图片不能显示,注意etree.jsp的js引入路径 支持Ext2.x以上版本 如运行不了EmailTo : codeme9@gmail....

    ext TREE

    EXT JS Tree组件的高级特性还包括树节点的检查框、分页加载、拖放排序等,开发者可以根据项目的具体需求选择使用。总之,EXT JS Tree组件是一个功能强大且灵活的工具,对于需要展示层次信息的Web应用来说,它提供了...

    获取Extjs中的TreePanel中所有的被checked的叶子节点的id

    var tree = Ext.getCmp('treeId'); // 监听checkchange事件 tree.on('checkchange', function(node) { // 在这里处理被选中的节点 }); ``` #### 2. 使用cascade方法遍历所有节点 `cascade`方法可以遍历TreePanel...

    EXT TREE 扩展CHECKBOX JS

    在EXT JS中,树形组件(Tree Panel)常用于展现层级结构的数据,而扩展CHECKBOX功能则允许用户对树节点进行多选操作。 在EXT JS的Tree Panel中,要实现复选框功能,我们需要自定义UI Provider。UI Provider是EXT JS...

    JSP EXT 遍历 TREE

    EXT提供了丰富的组件库,其中就包括TREE组件,它允许展示和操作数据结构为树形的视图。在这个场景中,"JSP EXT 遍历 TREE"涉及到的是如何在JSP页面上使用EXT框架来遍历和操作TREE组件。 首先,EXT-all.css和ext-all...

    EXT tree 使用 实例 最新

    EXT Tree提供了丰富的功能,包括节点的动态加载、拖放操作、节点选择以及自定义图标和样式。 在EXT Tree的使用实例中,我们通常会涉及到以下几个关键知识点: 1. **配置项与属性**:EXT Tree允许通过配置项定制其...

    extTree例子点击出现等

    ExtTree是Ext JS库中的一个组件,用于创建和展示树形结构的数据。它在Web应用程序中广泛使用,特别是在需要组织和导航层次结构信息时。在本案例中,“extTree例子点击出现界面”指的是用户在浏览ExtTree时,通过点击...

Global site tag (gtag.js) - Google Analytics