ExtJS学习笔记(十一) Tree的父子级联动选定,和自定义半选状态
来源:互联网 发布:好看的皮鞋淘宝店铺 编辑:程序博客网 时间:2024/05/21 02:36
在上一章的基础上添加,上节末尾有源代码地址
Ext.define("Demo.controller.tree.Tree", { extend: "Ext.app.ViewController", alias: "controller.demo_controller_tree", init: function () { this.control({ "demo_view_tree": { checkchange: this.onCheckChange } }); }, onCheckChange: function (node, ischecked) { // 不为空,表示为半选状态,半选之后的状态为选定 if (node.get("cls") != "") { ischecked = true; } var me = this; me.checkedChildNode(node, ischecked, me); me.checkedParentNode(node, ischecked, me); }, // 选中所有的子节点 checkedChildNode: function (node, ischecked, me) { node.set("checked", ischecked); node.set("cls", ""); if (node.hasChildNodes()) { // 是否包含子节点 node.eachChild(function (nodeChild) { me.checkedChildNode(nodeChild, ischecked, me) }); } }, // 选中所有的父节点,半选或者选中 // 在Ext4.0之后,树的选定状态就只有选定和不选定,取消了半选定状态。 // 因此在设计树的时候应该只给叶子节点(leaf)设置checked属性 // 如果一定要使用半选定状态可以参考下述的代码 checkedParentNode: function (node, ischecked, me) { var parent = node.parentNode; var partial = true; if (parent != null) { parent.eachChild(function (parentChild) { // 确定半选状态 // 情况一:子节点的checked与ischecked不一致 // 情况二:子节点为半选状态 parentChild.get("cls") != "" if (parentChild.get("checked") != ischecked || parentChild.get("cls") != "") { // 半选定状态为 : 选定 + 透明度50% parent.set("cls", "partial_select"); parent.set("checked", true); partial = false; return false; } }); if (partial) { parent.set("checked", ischecked); parent.set("cls", ""); } me.checkedParentNode(parent, ischecked, me); } }});
/* 半选状态的css */.partial_select{ filter: alpha(opacity=50); -moz-opacity: 0.5; opacity: 0.5;}
0 0
- ExtJS学习笔记(十一) Tree的父子级联动选定,和自定义半选状态
- extjs的ComboBox 2级联动
- VS2005 TreeView的checkBox的父子节点级联状态
- VS2005 TreeView的checkBox的父子节点级联状态
- ExtJS学习笔记(五) Tree
- extjs tree check 级联选择
- ExtJS 复选框的tree 结点的级联选择
- Maven学习笔记(十一)-创建自定义的archetype(项目模板)
- extjs的级联展开
- TreeView的子节点和父节点级联选中,遍历TreeView并查找和选定节点
- optionc:if选定。和单选选定
- TreeView控件的CheckBox自动实现父子节点递归选定
- Hibernate 父子关系的级联保存
- CSS学习笔记:级联和继承
- Oracle学习笔记十一:数据库的备份和恢复
- MonoRail学习笔记十一:页面控件的填充和验证
- MonoRail学习笔记十一:页面控件的填充和验证
- ExtJS学习之tree
- reentrantlock与synchronized
- Linux(Centos)之安装Java JDK及注意事项
- 『 Jack_a_Lent_Notes』---三极管的三种工作状态
- C++ static、const以及static const的用法
- Leetcode- 143. Reorder List
- ExtJS学习笔记(十一) Tree的父子级联动选定,和自定义半选状态
- Linux 安装JDK
- 运行caffe自带的两个简单例子
- struts2 1/24 基础配置
- rlwrap小插件
- v5.33Realease总结-折腾是风险与惊喜并存
- C++编码军规(002):避免在C++中使用C形式的强制类型转换
- Stream篇(—)
- angularjs-根据循环得到的数据中某个对象的属性来添加样式