2011-07-14 73 views
0

我们正在使用TreePanel中,在我们的application.It复选框似乎是:ExtJS的4 TreePanel中使用复选框问题

VAR TreePanel中= {
ID: '树',
的xtype: 'TreePanel中',
店:layerStore,
rootVisible的:假的,
听众:{
checkchange:功能(节点,检查){
如果(node.get( '身份证')== '老师'){
alert('您选择了教师节点'); (node.get('id')=='student'){alert('你选择了学生节点'); }
}
}
};

LayerStore代码:

var layerStore = Ext.create('Ext.data.TreeStore',{ 
root : { 
children : [ 
{ 
text : 'teacher layer', 
id : 'teacher', 
checked : false 
},{ 
text : 'Student layer', 
id : 'student', 
checked : false 
}] 
} 

});

现在,当我们检查特定的复选框时,我收到警报消息。我的问题是,如果我们取消选中复选框,那么它必须显示警报,就像您未选择特定图层一样。请帮助我。

回答

1

我quess你有你“checkchange”处理程序改成这样:

checkchange : function(node,check){ 
    var s = (!check && 'un' || '') + 'selected'; 

    if(node.get('id') == 'teacher'){ 
    alert('you have '+s+' teacher node'); 
    }else if(node.get('id') == 'student'){ alert('you have '+s+' student node'); } 
} 
+0

非常感谢您的reply.It帮了我很多。 – Unknown

+0

嗨分子,我还有一个疑问,如果我们选择父节点,它必须选择特定父节点下的cild节点。例如:如果我们选择了教师节点,那么教师节点下的子节点必须选择。任何可能性?如果请帮助我。 – Unknown

+1

Hi @Kiran。有可能的。你可以玩node.cascadeBy。例如node.cascadeBy(function(childNode){childNode.set('checked',check); tree.fireEvent('checkchange',childNode,check);}。虽然你可能有嵌套节点的问题。 (true,function(){node.cascadeBy(function(childNode){childNode.set('checked',check); tree.fireEvent('checkchange',childNode如果它有帮助 –