有没有办法在ExtJS4中禁用treeview的节点
我的目的是禁用西部地区treeview的某些节点。 下面的代码片段显示了这一点:有没有办法在ExtJS4中禁用treeview的节点,extjs4,treeview,Extjs4,Treeview,我的目的是禁用西部地区treeview的某些节点。 下面的代码片段显示了这一点: root: { expanded: true, id: 'treeview1', children: [ {"text": "Make Copy", "leaf": true, id:'HS1', "**disabled**": true,
root: {
expanded: true,
id: 'treeview1',
children: [
{"text": "Make Copy",
"leaf": true,
id:'HS1',
"**disabled**": true,
"**hidden**" : true}
]
}
为什么禁用和隐藏属性在ExtJS4中不起作用
是否有任何插件来实现它 树面板中的节点是
Ext.data.NodeInterface
对象
它没有禁用或隐藏的属性,但它有cls
,使用该属性,您可以向其添加一个display:none
样式,该样式隐藏节点
例如:
Ext.create('Ext.tree.Panel', {
(...)
listeners: {
beforeitemclick: function(treeview, record, item, index, e, eOpts) {
if (record.raw && record.raw.disabled == true) {
return false;
}
return true;
},
itemclick: function(treeview, record, item, index, e, eOpts) {
console.log(record, item);
}
}
});
.x-hidden-node {display: none !important;}
root: {
expanded: true,
id: 'treeview1',
children: [{
text: 'Make Copy',
leaf: true,
id:'HS1',
cls : 'x-hidden-node'
}]
}
对于禁用的功能,可以使用treepanel的“beforeitemclick事件”手动读取禁用的属性
例如:
Ext.create('Ext.tree.Panel', {
(...)
listeners: {
beforeitemclick: function(treeview, record, item, index, e, eOpts) {
if (record.raw && record.raw.disabled == true) {
return false;
}
return true;
},
itemclick: function(treeview, record, item, index, e, eOpts) {
console.log(record, item);
}
}
});
如果treeview的子项不是复选框,则上述代码可以正常工作。如果treeview的子元素是checkbox,那么在这种情况下,我们需要将xtype of children元素作为checkbox删除以使其工作。下面是孩子们的样本
children: [{
"xtype": "checkbox",// remove
"checked":"false", //remove
"expanded": "false",
"leaf": "true",
"qtip": "Make Copy",
"text": "Make Copy",
"disabled": "true",
"cls" : "x-hidden-node"
}]
如何解决禁用的属性。。。cls将使节点隐藏。我想删除点击属性以及???@Praveen NC,答案修改,我希望它将帮助您完美工作。我无法读取侦听器中的disabled属性。谢谢你宝贵的时间。我想通过电脑递给你一支雪茄,得到这个很棒的答案……真的救了我。