extjs4.2 三态树

问题描述

js比较菜,请问下哪位大神写过extjs4.2的三态树给个源码,或者给个思路,貌似extjs3.x是通过重写Ext.ux.TreeCheckNodeUI控件,那时4貌似没有这个类啊。

解决方案

Extjs4在Ext.tree.Panel中对带有checkbox的树的节点的选择上和extjs3不一样,主要是在tree上添加checkchange事件left_tree.on('checkchange',function(node, checked){checkboxSelected(node,checked);}); function checkboxSelected(node,checked){ setChildChecked(node,checked); setParentChecked(node,checked); }function setChildChecked(node,checked){node.expand();node.set('checked',checked);if(node.hasChildNodes()){ node.eachChild(function(child) { setChildChecked(child,checked); }); } }function setParentChecked(node,checked){ node.set({checked:checked}); var parentNode = node.parentNode; if(parentNode !=null){ var flag = false; parentNode.eachChild(function(childnode) { if(childnode.get('checked')){ flag = true; } }); if(checked == false){ if(!flag){ setParentChecked(parentNode,checked); } }else{ if(flag){ setParentChecked(parentNode,checked); } } } }

时间: 2024-12-28 10:08:33

extjs4.2 三态树的相关文章

使用三态树实现多个注册表子键的选择

实现注册表的浏览和多个子键的选择,可以配合 CRegisterExport 类(参见"导入导出注册表项的类"一文),将选择的注册表项导出. 以下是将 CRegisterTreeCtrl 类添加到工程中的步骤: 1.生成一个新的对话框工程: 2.将 RegisterTreeCtrl.h,RegisterTreeCtrl.cpp 文件添加到工程中: 3.将STATEBMP.BMP,folderbmp.bmp文件添加到工程资源中,并设定资源ID.这里设置如下:folderbmp.bmp -&

使用三态树实现多目录选择

参考:徐景周的三态树的实现 在选择目录时,可以使用系统提供的Shell函数SHBrowseForFolder,这个函数功能比 较强大,在一般情况下使用它基本上能够满足要求,但是,这个函数也有一个缺陷,就是不能选择多个目录,每次只能返回一个选择的目录.可是在实际的工作中,需要 一次返回多个选择的目录.我一开始琢磨着用CFileDialog来实现,可是后来发现无 法实现我要的功能.于是乎就采取了一种比较"笨"的办法,用三态树实现多目录选 择.参考了徐景洲的三态树的实现和其他一些关于CTre

ExtJS4.x 如何实现下拉树形菜单的效果

ExtJS如何实现下拉树形菜单的效果.据李坏在网上查阅各位大牛在实现该功能的方法时,发现很多人都是自定义一个类库来实现该功能.其实在官方下载的ExtJS版本中已为我们提供了TreePicker.js类库,就是来实现下拉树形菜单的,下面李坏通过一个简单的Demo,为大家抛砖引玉: 1.搭建ExtJS开发环境,目录结构如下:       李坏这里采用的ExtJS4.x MVC模式的开发方式,下面给出各个文件的代码,这里不做详细解释(如果对ExtJS的mvc模式不熟悉的童鞋 文件index.html:

DHTMLX Tree中文开发指导

 专业版1.6下载地址(CSDN)  http://download.csdn.net/source/1388340 版本号:dhtmlxTree v.1.6 Professional edition build 71114   最近开发项目使用到了dhtmlXtree做权限设置,看了网上相关的中文资料很少,就把官方的资料翻译了下,一共分2部分,API可以参考官方文档:http://dhtmlx.com/docs/download.shtml   效果图如下(三态树):   dhtmlXTree

javascript-TreeView父子联动效果保持节点状态一致_javascript技巧

我们大部分都用过TreeView控件,对这个控件的评价也是各式各样的,但是我觉得不论如何它是一个免费的开源的控件,所以我还是在用它.在刚接触ASP.NET的时候,记得需要做一个分配权限的权限树,当时只知道有这个树,经过一天的研究对其服务器端的行为基本以及搞清楚了,但是由于当时的js水平有限,所以对客户端的代码很畏惧,基本没有看过. 当时有这样一个要求:如果一个节点被选中则该节点的所有子节点都要选中,如果该节点的所有子节点取消选择则该节点也要取消选择(节点一致性),相反一样. 还有一个要求就是:如

详解PHP实现异步调用的4种方法_php技巧

浏览器和服务器之间是通过 HTTP 协议进行连接通讯的.这是一种基于请求和响应模型的协议.浏览器通过 URL 向服务器发起请求,Web 服务器接收到请求,执行一段程序,然后做出响应,发送相应的html代码给客户端. 这就有了一个问题,Web 服务器执行一段程序,可能几毫秒就完成,也可能几分钟都完不成.如果程序执行缓慢,用户可能没有耐心等下去,就关闭浏览器了. 而有的时候,我们更本不关心这些耗时的脚本的返回结果,但却还要等他执行完返回,才能继续下一步. 那么有没有什么办法,只是简单的触发调用这些耗

三态选择树实现终结者

示例代码运行效果图如下: 在很多情况下,我们经常需要实现树的多态选择,如上图所示,当全部子节点选中的情况下,当前节点才被选中(如图示[荆门市]节点),当子节点部分选中时,当前节点处于第三态(如图示[湖北省]节点)当全部子节点未选中时,当前节点处于未选中的状态(如图示[江苏省]节点).本文就介绍这种三态选择树的具体实现方法. 在VC知识库第十九期中河南科技大学丛雷朋友也介绍了一种实现方法,两种方法比较,本文介绍的方法实现简单,兼容原CTreeCtrl的全部操作,CheckBox也是采用控件本身的C

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

复制代码 代码如下: //只要要在treepanel中配置一下viewConfig即可,如果是两棵树之间,两棵树都要配置    viewConfig:{   plugins :{    ptype:'treeviewdragdrop',    appendOnly:true   //只能拖着带非叶节点上   },   listeners:{//监听器    drop:function(node,data,overModel,dropPosition,options){     //ajax的操作

Extjs4中tree的拖拽功能简单实例

这篇文章主要介绍了Extjs4中tree的拖拽功能简单实例,有需要的朋友可以参考一下 代码如下: //只要要在treepanel中配置一下viewConfig即可,如果是两棵树之间,两棵树都要配置     viewConfig:{    plugins :{     ptype:'treeviewdragdrop',     appendOnly:true   //只能拖着带非叶节点上    },    listeners:{//监听器     drop:function(node,data,o