【无事水一发】ExtJS4 Ext.tree.Panel (无限层级)带复选框树勾选(父级子级)联动代码
2014-03-14 15:46
585 查看
原创,转载请注明出处~~
勾选父节点,之下所有子节点自动勾选;反之自动取消子节点勾选(无限层级)
勾选所有子节点,父节点自动勾选;反之自动取消父节点勾选(无限层级)
勾选父节点,之下所有子节点自动勾选;反之自动取消子节点勾选(无限层级)
勾选所有子节点,父节点自动勾选;反之自动取消父节点勾选(无限层级)
Ext.onReady(function() { var store = Ext.create('Ext.data.TreeStore', {//测试数据 root:{ text:'Root', expanded: true, checked: false, children:[{ "text": "2013年", "expanded": true, "checked": false, "children": [{ "text": "一月", "leaf": false, "checked": false, "children":[{ "text": "1日", "leaf": false, "checked": false, "children":[{ "text": "1时", "leaf": true, "checked": false },{ "text": "2时", "leaf": true, "checked": false },{ "text": "3时", "leaf": true, "checked": false },{ "text": "4时", "leaf": true, "checked": false }] },{ "text": "2日", "leaf": true, "checked": false },{ "text": "3日", "leaf": true, "checked": false },{ "text": "4日", "leaf": true, "checked": false },{ "text": "5日", "leaf": true, "checked": false },{ "text": "6日", "leaf": true, "checked": false }] },{ "text": "二月", "leaf": true, "checked": false },{ "text": "三月", "leaf": true, "checked": false },{ "text": "四月", "leaf": true, "checked": false },{ "text": "五月", "leaf": true, "checked": false },{ "text": "六月", "leaf": true, "checked": false },{ "text": "七月", "leaf": true, "checked": false },{ "text": "八月", "leaf": true, "checked": false },{ "text": "九月", "leaf": true, "checked": false },{ "text": "十月", "leaf": true, "checked": false },{ "text": "十一月", "leaf": true, "checked": false },{ "text": "十二月", "leaf": true, "checked": false }] },{ "text": "2014年", "expanded": false, "checked": false, "children": [{ "text": "一月", "leaf": true, "checked": false },{ "text": "二月", "leaf": true, "checked": false },{ "text": "三月", "leaf": true, "checked": false },{ "text": "四月", "leaf": true, "checked": false },{ "text": "五月", "leaf": true, "checked": false },{ "text": "六月", "leaf": true, "checked": false },{ "text": "七月", "leaf": true, "checked": false },{ "text": "八月", "leaf": true, "checked": false },{ "text": "九月", "leaf": true, "checked": false },{ "text": "十月", "leaf": true, "checked": false },{ "text": "十一月", "leaf": true, "checked": false },{ "text": "十二月", "leaf": true, "checked": false }] }] } }); var tree = Ext.create('Ext.tree.Panel', { store: store, rootVisible: true, useArrows: true, frame: true, title: 'Check Tree', renderTo: '_main', width: 200, height: 450, listeners:{ 'checkchange':function(node, checked, eOpts) {//这里是关键 function ck(node) { Ext.Array.each(node.childNodes, function(item, index, allItems){ item.set('checked', checked); if(!item.isLeaf() && node.hasChildNodes())) ck(item); }); } function rck(node) { var cnt = 0; Ext.Array.each(node.parentNode.childNodes, function(item, index, allItems){ if(item.get('checked')) { cnt += 1; } }); node.parentNode.set('checked', (cnt == node.parentNode.childNodes.length)); if(!node.parentNode.isRoot()) rck(node.parentNode); } if(!node.isLeaf() && node.hasChildNodes()) { ck(node); } rck(node); } } }); });
相关文章推荐
- 当Extjs 4.0的 Ext.tree.Panel 遇上 WebSerivce
- Ext.net TreePanel的Checkbox操作及父子联动
- Extjs 实战之 Ext.tree.TreePanel Tree无法显示
- Extjs-树 Ext.tree.TreePanel
- 补充 ext treepanel 支持无限级 递归
- [JAVASCRIPT][EXTJS]直接用JSON创建树形控件(Ext.tree.TreePanel )(转)
- Extjs 实战之 Ext.tree.TreePanel Tree无法显示
- ExtJS4 Ext.tree.Panel获取Node对象
- Extjs4--Ext.tree.Panel实现可选择树
- [JAVASCRIPT][EXTJS]直接用JSON创建树形控件(Ext.tree.TreePanel )
- asp.net mvc + ExtJs 实现无限级TreePanel 加载、添加、编辑、删除
- extjs ext.tree.panel 添加监听事件
- extjs TreePanel 加载数据后默认选中第一个孩子并展开子级
- Extjs-树 Ext.tree.TreePanel
- Extjs学习笔记--Ext.tree.Panel
- Extjs 中的 Treepanel 实现菜单级联选中效果及实例代码
- 两种 ext.net treepanel 的子父节点联动的写法
- ExtJs 4.x 学习小记:动态添加节点到Ext.tree.Panel
- [Ext.Net] 1.2.0_Ext.Net.TreePanel 勾选“纠结”发送给服务器端的方法
- ASP.net MVC、Extjs多级目录(理论上可以无限级、非递归)treepanel显示和数据库(多级目录)存储结构的设计(上篇)