Ext中TREE的扩展 ,三种状态
最近在一个项目中用到了EXT中TREE,但是它本身不提供自己想要的功能,在一番搜索之后,找到了《 Ext.tree.TreeNodeUI 进行checkbox功能的扩展》这个文章,在看过以后,发现了几个问题
1、只有两种状态
2、当选中子节点的时候,它又把自己的父节点给循环了一边
于是自己就做了如下修改,这里只贴修改后的,如果有人想比较,可以找找那篇文章
本文来自CSDN博客:http://blog.csdn.net/taogou/archive/2009/03/17/3999115.aspx
最近在一个项目中用到了EXT中TREE,但是它本身不提供自己想要的功能,在一番搜索之后,找到了《 Ext.tree.TreeNodeUI 进行checkbox功能的扩展》这个文章,在看过以后,发现了几个问题
1、只有两种状态
2、当选中子节点的时候,它又把自己的父节点给循环了一边
于是自己就做了如下修改,这里只贴修改后的,如果有人想比较,可以找找那篇文章
// private childCheck : function(node,checked){ var a = node.attributes; if(!a.leaf) { // debugger; var cs = node.childNodes; var csui; for(var i = 0; i < cs.length; i++) { csui = cs[i].getUI(); csui.checkbox.checked=checked; this.childCheck(cs[i],checked); } } }, // private parentCheck : function(node ,checked){ var checkbox = node.getUI().checkbox; if(typeof checkbox == 'undefined')return ; //debugger; var state=this.childHasChecked(node,checked); //if(!(checked ^ checkbox.checked))return; //if(!checked && childhaschecked) return; if (state==0)//全否 { checkbox.checked=false; checkbox.indeterminate=false; } else if (state==1) //半选中 { checkbox.checked=true; checkbox.indeterminate=true; } else { checkbox.checked=true; checkbox.indeterminate=false; } // checkbox.checked = checked; node.attributes.checked = checkbox.checked; node.getOwnerTree().fireEvent('check', node, checked); var parentNode = node.parentNode; if( parentNode !== null){ this.parentCheck(parentNode,checked); } }, // private childHasChecked : function(node,checked){//检查是否存在被勾选的 并且状态不为灰化的 var childNodes = node.childNodes; var retValue=0; if(childNodes || childNodes.length>0){ for(var i=0;i<childNodes.length;i++){ var checkbox=childNodes[i].getUI().checkbox; //本身是全选中状态 即 checked=true, indeterminate=false , 并且此次进来取消选中状态(参数checked=false) 则只需要找出子节点是否存在被选中 如果存在某个子节点为半选中状态,则为半选中,否则不选中 if(!checked) { if (checkbox.checked ) //存在选中 则直接退出 { return 1;//半选中状态 } } else { retValue=2; if (!checkbox.checked || (checkbox.checked && checkbox.indeterminate)) { return 1; } } } } return retValue; },
本文来自CSDN博客:http://blog.csdn.net/taogou/archive/2009/03/17/3999115.aspx
1 楼 lanwuying 2012-04-25
这个也是有问题的哦
都不支持级联全选
就是点父节点的复选框 子节点不能选中
都不支持级联全选
就是点父节点的复选框 子节点不能选中
相关推荐
自己编写的EXT例子,grid、tree从数据库读取数据动态显示,并进行分页。可以动态更换主题,并存入cookies中。
关于Ext Tree Panel,相关的知识文档
Ext-tree加载Ext-tree加载Ext-tree加载Ext-tree加载Ext-tree加载Ext-tree加载Ext-tree加载Ext-tree加载Ext-tree加载Ext-tree加载Ext-tree加载Ext-tree加载Ext-tree加载
Ext.tree 实例代码文件 并附带封装的json类 ,工程源码,相互指教!
ext的tree两个拖拽例子,话不多说,详见代码
通过DWR动态加载Ext.tree.TreePanel。
EXT tree 使用 实例 最新 EXT使用实例,很漂亮。
extjs 可编辑的表格树,每个单元格自定义编辑组件,可以自适应列宽,只有源码与例子,运行实例要修改路径,不然图片不能显示,注意etree.jsp的js引入路径...支持Ext2.x以上版本 如运行不了EmailTo : codeme9@gmail.com
EXT TREE 扩展CHECKBOX所需JS loader方法中添加: baseAttrs: {uiProvider: Ext.tree.TreeCheckNodeUI }
自己整理的ext涉及的四种常见的tree 1.一次加载所有结点 2.可拖拽的tree 3.动态加载结点,每次展开结点需向后台获取数据 4.可维护的tree 结点维护
Ext checktree Ext checktree
JSP EXT 遍历 TREE,测试通过了的,有问题可发邮件leiqiang1230@126.com
用ext + xml文件 完成 ext tree panel 树结构。延迟加载,支持 多选 单选。前后台数据交互使用的是 json串,挺不错的
一个关于extTree的应用,点击会弹出界面啊,等等
ExtJS4+Accordion+SERVLET/STRUTS2+JSON+Ext.tree.Panel实例
一个不错Ext Tree 自己去下个EXT2.0库吧
gwt-ext-treegwt-ext-treegwt-ext-treegwt-ext-treegwt-ext-tree
ext tree 与ssh2的结合,主要演示ext在ssh2中的使用
Ext 带多选框的Tree
EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT...