`
endual
  • 浏览: 3508826 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

extjs4 tree操作

 
阅读更多

Extjs tree 如何获得选中的节点

 (2011-04-27 17:35:51)
标签: 

it

分类: extjs

这里说的选中是指鼠标点击一个节点后,节点那一行出现浅蓝色背景的选中,而非checkbox的勾选

方法

 

Ext.tree.TreePanel.getSelectionModel().getSelectedNode();

Ext.tree.TreePanel.getSelectionModel()获得的是一个TreeSelectionModel对象,

这个TreeSelectionModel目前在Ext中有两个Ext.tree.DefaultSelectionModel和Ext.tree.MultiSelectionModel

 

Ext.tree.MultiSelectionModel的获取选中节点的方法是getSelectedNodes (),这个返回的是节点数组,Ext.tree.DefaultSelectionModel.getSelectedNode()返回的是单个节点对象。




extJS 树节点操作

    博客分类: 
  • extjs
ext 树节点操作 
tree :树    node:节点 
1、全部展开 tree.expandAll(); 
2、全部收缩 tree.collapseAll(); 
3、得到父节点 node.parentNode 
4、判断是否有父节点 node.parentNode==null 
5、判断是否有子节点 node.hasChildNodes() 
6、获取下一级所有子节点 node.eachChild(function(child) { }) 
7、获取选择的节点 tree.getSelectionModel().getSelectedNode() 
8、设置选中节点  node.select() 
9、上移节点 node.selectPrevious(); 
10、下移节点 node.selectNext(); 
11、获取节点ID  node.id 
12、获取节点值  node.text 
13、获取节点提示  node.attributes.qtip 
带选择框 
14、获取选中的的节点 
var check= tree.getChecked(); 
Ext.each(check ,function(node){}) 
15、获取是否选择  node.getUI().checkbox.checked; 
16、设置节点选择   node.ui.toggleCheck(true);  //显示选中    node.attributes.checked = true; //赋值 


17、设置一个新的节点 
var newNode=new Ext.tree.TreeNode({id:'id',text:'text',iconCls:'icon-group',qtip:'tip'});      iconCls 导入的是CSS设置的背景图片(节点图标) 
css写法: .x-tree-node-leaf .icon-group{  background-image:url(group.png);} 前.x-tree-node-leaf必写 
18、插入新的节点  node.appendChild(newNode); 
19、删除节点 node.remove();  
20 
这里说的选中是指鼠标点击一个节点后,节点那一行出现浅蓝色背景的选中,而非checkbox的勾选 
方法 

Ext.tree.TreePanel.getSelectionModel().getSelectedNode(); 
Ext.tree.TreePanel.getSelectionModel()获得的是一个TreeSelectionModel对象, 
这个TreeSelectionModel目前在Ext中有两个Ext.tree.DefaultSelectionModel和Ext.tree.MultiSelectionModel 

Ext.tree.MultiSelectionModel的获取选中节点的方法是getSelectedNodes (),这个返回的是节点数组,Ext.tree.DefaultSelectionModel.getSelectedNode()返回的是单个节点对象 
21 选中节点和父节点 
1)、父节点选择 
function parentclick(node) 
    { 
        var parent=node.parentNode;   //获取父节点 
        var flag=node.getUI().checkbox.checked;   //判断是否选中 
        if(parent!=null )  //父节点不为空 
        { 
            parent.ui.toggleCheck(flag);  //选中 
            parent.attributes.checked = flag;   //给值 
            parentclick(parent);  //递归调用选中父节点 
        } 
    } 
2)、选择子节点 
function treeclick(node) 
    {  
        var flag=node.getUI().checkbox.checked;  //获取选中状态 
        if (node.hasChildNodes()) {                 //是否有子节点 
           node.eachChild(function(child) {         //循环下一级的所有子节点 
               child.ui.toggleCheck(flag);          //选中 
               child.attributes.checked = flag;     //赋值 
                treeclick(child);                   //递归选中子节点 
            }); 
         } 
    } 

3)、2个函数合并执行 
function check(node) 

    tree.suspendEvents(); //暂停所有监听事件的执行 
      treeclick(node); 
     parentclick(node); 
     tree.resumeEvents();  //重新开始所有监听事件的执行   


注: 
选中事件发生在子节点,但要通过toggleCheck()改变其父节点未被选中的状态,而一旦改变了父节点未被选中状态为选中状态,就会激发树中的<CheckChange Handler="check(node)" />事件,每次激发,传入的节点值node一直在改变,陷入一个死循环。因此要加入suspendEvents()停止监听事件,执行完后再恢复监听 
22  如果使用Ext.QuickTips.init()替换tree.expandAll(),则只显示根节点。
分享到:
评论

相关推荐

    Extjs tree实例【源代码】

    本例旨在说明extjs的tree操作,后台操作很简陋。给入门同学一个简单指导。 本例,存在几个明显的bug,但不影响本意,见谅。 需要C#无bug版的同学,请留下邮箱。 最后:祝自己在13年,顺利完成所有计划!

    Extjs Tree + JSON + Struts2 示例源代码

    在我的随笔Extjs Tree + JSON + Struts2中我介绍了如何异步加载一个Extjs的树,但是很多网友留言说不能成功操作。现在我自己做了一个所有源代码的包,供大家下载。 有几点事项请大家注意 1、blogjava的文件上载要求...

    Extjs tree的简单小例子

    最近项目需要extjs的树,学习了一下,写了个小例子。 呃……虽然比较简单~但是还是花了半天才写出来~ 包、数据库的操作就没贴了。

    ExtJS 自定义树组件 节点的操作 搜索 右键菜单

    功能: 1.实现ExtJS tree 节点右键菜单 实现增删查. 2.实现针对实体数据的动态搜索. 3.代码命名规范,简单易懂. 4.支持IE 9,FF 19.0.2. 5.将文件解压至ext包example任意组件文件夹即可浏览效果.

    AnyFo - Util - Json4Ext:通用ExtJS数据交换处理

    AnyFo - Util - Json4Ext Json4Ext项目背景 在大家开发的系统中,如果程序用ExtJS做表现层,那么就需要使ExtJS开发的界面和后台Java代码中生成的数据交互,一般来说,可以...4. ExtJS中的Tree控件需要的Json字符串

    精通JS脚本之ExtJS框架.part2.rar

    第4章 ExtJS事件机制 4.1 设计模式——观察者模式 4.2 自定义事件 4.3 浏览器事件 4.4 ExtJS中的事件 4.4.1 Function.call()/apply()方法 4.4.2 函数的作用域 4.4.3 Ext.lib.Event事件 4.4.4 Ext.util....

    ExtJs2.0 SSH 实现简单结构与上传文件 数据库同步树形结构

    使用ExtJs2.0+SSH开发的结构,可以进行文件上传,以及数据的管理,用户的登录,通过数据库数据操行操作树形结构等功能

    ExtJS框架学习综合项目

    这是对ExtJS学习的一个小总结,做成了一个可运行的小项目,包括了gird,form,tree等ExtJS组件的使用,以及ExtJS的布局管理。部分案例通过ExtJS页面直接操作后台数据,还包括了poi,jxl生成Excel表格的操作,以及grid在...

    extjs适用开发指南

    ExtJS实用开发指南包括了tree、panel、grid等进行详细的操作讲解

    Extjs4中tree的拖拽功能(可以两棵树之间拖拽) 简单实例

    代码如下://只要要在treepanel中配置一下viewConfig即可...drop:function(node,data,overModel,dropPosition,options){ //ajax的操作把数据同步到后台数据库 alert&#40;“把:”+data.records[0].get(‘text’&#41;+”

    精通JS脚本之ExtJS框架.part1.rar

    第4章 ExtJS事件机制 4.1 设计模式——观察者模式 4.2 自定义事件 4.3 浏览器事件 4.4 ExtJS中的事件 4.4.1 Function.call()/apply()方法 4.4.2 函数的作用域 4.4.3 Ext.lib.Event事件 4.4.4 Ext.util....

    log4Net详解(共2讲)

    2.6、ExtJs中的ExtTree详解 3、ExtJs数据篇 3.1、数据存储基本单元Record与DataField详解 3.2、数据存储Store详解1 3.3、数据存储Store详解2 3.4、数据代理DataProxy详解 3.5、数据读取器DataReader详解 3.6...

    对LDAP的基本操作(Spring-ldap)+Ext实现显示LDAP的树状结构

    rar包:一个Web工程, 主要有,利用Spring-ldap对LDAP的基本操作(查询,增删改);Extjs实现的对Ldap的树状结构的显示,结构有点类似Softerra LDAP;一个测试类。 pdf:spring-ldap-reference.pdf Extjs.pdf ...

    ext4.2 目录树

    在学习ext的过程中花了不少时间,我想很多网友刚开始学习ext的时候肯定会用到tree所以把现有项目的tree操作做了一个demo分享给大家以便学习参考。例子里面包括了对tree增、改、删、拖动、子父节点的选则取消、右键...

    ExtJS源码分析与开发实例宝典--书中代码

    基于元素的开发部分讲解了在DOM元素基 础上扩展的Ext JS元素,包括元素操作、元素查找、元素样式、动画特效和拖曳实现。深入组件的开 发部分讲解Ext JS组件的原理及各大组件的应用,包括组件模型、容器模型、布局...

    ExtJS 刷新后如何默认选中刷新前最后一次选中的节点

    在对树节点进行操作后往往需要进行reload操作刷新一下树,但是... 完成的代码如下: 首先是extjs3.x版本中的方法: 代码如下: //获取选中的节点 var node = tree.getSelectionModel().getSelectedNode(); if(node == nu

    Ext Js权威指南(.zip.001

    7.5.11 树节点:ext.data.nodeinterface与ext.data.tree / 364 7.5.12 store的方法 / 366 7.5.13 store的事件 / 368 7.5.14 store管理器:ext.data.storemanager / 369 7.6 综合实例 / 369 7.6.1 远程读取json...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -增加Accordion和Tree配合使用的示例(other\accordion_tree_run.aspx)。 -修正Panel图标不能显示的BUG(CSS中class名不能有$字符)。 +去除PageLayout控件,此控件可以使用BorderLayout和指定PageManager的...

    ExtAspNet_v2.3.2_dll

    ExtAspNet - ExtJS based ASP.NET Controls with Full AJAX Support ExtAspNet是一组专业的Asp.net控件库,拥有原生的AJAX支持和丰富的UI效果, 目标是创建没有ViewState,没有JavaScript,没有CSS,没有...

    GoodProject Maven Webapp.zip

    jQuery EasyUI为提供了大多数UI控件的使用,如:accordion,combobox,menu,dialog,tabs,validatebox,datagrid,window,tree等等。 jQuery EasyUI是基于JQuery的一个前台ui界面的插件,功能相对没extjs强大,但...

Global site tag (gtag.js) - Google Analytics