extjs4.2 三态树

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

1个回答

[code="java"]
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);
}
}
}
}
[/code]

fenyanzhen
fenyanzhen 好吧,结贴吧,貌似还没找到办法,extjs4去掉了TreeNodeUI类,但是好像是由Ext.tree.View来替代了,看样子只能暂时先研究下这个类了。
接近 6 年之前 回复
leehuat
leehuat 这个只能自己控制了 extjs4 没有看到可以配置的plugins的 或者你可以继承4, 添加3个状态的的属性配置,然后根据你配置来处理这些状态
接近 6 年之前 回复
fenyanzhen
fenyanzhen 这个checked貌似只有true和false两种状态,那半选状态怎么处理,是不是通过样式来解决,定义3个图标分别来对应全选,全部选,部分选中三种状态?
接近 6 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问