extjs4 treepanel 动态的加载节点,怎么在选中时,级联选中子节点呢?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了extjs4 treepanel 动态的加载节点,怎么在选中时,级联选中子节点呢?相关的知识,希望对你有一定的参考价值。
如上图是一个带checkbox的tree,那么此时"联通测试"下面的子节点们还没有加载,如何实现点击checkbox既加载子节点又级联选中子节点呢?
代码参考:
onCheckboxChange : function(e, t)
var item = e.getTarget(this.getItemSelector(),this.getTargetEl()), record;
if(item)
record = this.getRecord(item);
var check = !record.get('checked');
record.set( 'checked', check);
if(check)
record.cascadeBy(function(node)
node.expand()//此时动态展开,store里面已经有子节点,但是在此处node仍然是参数
//没有子节点的参数,此处应做如何处理,才会刷新node的值
node.set('checked',true);
);
else
record.cascadeBy(function( node)
node.set('checked',false);
);
//*****************************************
当前效果
目的 :让子节点也级联选中。
再顶下,大家过来帮吧
//添加监听事件
listeners:
checkchange: function(node, state)
//如果被勾选的节点有子节点,则将其子节点全部改为根节点状态
if (node.hasChildNodes())
for (var j = 0; j < node.childNodes.length; j++)
node.childNodes[j].set(\'checked\', state);
);追问
哥们儿,问题现在节点是动态加载的 ,你点击的时候它还没有children呢,你懂不?展开之后再点击才有children也就是,你必须要先点击+号展开(动态加载子节点后)然后再选择,现在问题是想点击checkbox就直接展开带加载子节点并且选中!
追答动态加载节点,是在click事件里边进行了一次ajax请求是吧
现在,你在checkchange里边也加一个ajax请求啊
请求成功之后,你把回来的节点的checked全部改成选中或未选中就可以了
var item = e.getTarget(this.getItemSelector(), this.getTargetEl()), record;
if (item)
record = this.getRecord(item);
var check = !record.get('checked');
record.set('checked', check);
if (check)
record.bubble(function(parentNode)
if(!parentNode.isRoot())
parentNode.set('checked', true);
//parentNode.expand(false, true);
);
record.cascadeBy(function(node)
if(!node.isRoot())
node.set('checked', true);
//node.expand(false, true);
);
else
record.cascadeBy(function(node)
node.set('checked', false);
);
如何在extjs 4.1中的treePanel中移动节点标签的复选框结尾
【中文标题】如何在extjs 4.1中的treePanel中移动节点标签的复选框结尾【英文标题】:how to move checkbox end of node label in treePanel in extjs 4.1 【发布时间】:2016-11-15 06:14:27 【问题描述】:默认情况下,复选框位于 extjs 4.1 中 treePanel 中节点标签的左侧。 但我想将节点上标签的复选框从左到右移动。
【问题讨论】:
【参考方案1】:只需将float: right;
应用于树复选框类。检查小提琴 -
http://jsfiddle.net/vdazU/3238/
【讨论】:
以上是关于extjs4 treepanel 动态的加载节点,怎么在选中时,级联选中子节点呢?的主要内容,如果未能解决你的问题,请参考以下文章
在 ExtJs 4.0 TreePanel 中更改文件夹和叶子节点的顺序