javascript - Extjs - 树面板根据条件折叠和展开
问题描述
我想根据 extjs 4.2.1 中 tree.panel 中的条件折叠或展开节点
tree.on("beforeitemexpand",function(node) {
if (booleanFlag === true) {
//allow to expand
} else {
//donot allow to expand
}
});
我已经尝试过 beforeitemExpand 如果 booleanFlag 为假则返回假,但它不起作用。
解决方案
事件“beforeitemexpand”似乎在 Extjs 4.2.1 中有一个错误,它并不理想,但您可以使用“beforeitemclick”和“beforeitemdblclick”来实现您想要的功能:
Ext.application({
name: 'Fiddle',
launch: function () {
var enableHomeExpand = false;
var enableBookExpand = false;
var store = Ext.create('Ext.data.TreeStore', {
root: {
children: [{
text: 'homework',
expanded: false,
children: [{
text: 'book report',
children: [{
text: 'test',
leaf: true
}, {
text: 'test 2',
leaf: true
}]
}, {
text: 'algebra',
leaf: true
}]
}, {
text: 'homework',
children: [{
text: 'book report',
children: [{
text: 'test',
leaf: true
}, {
text: 'test 2',
leaf: true
}]
}]
}]
}
});
var handleClick = function (node,rec,item){
if ((rec.data.text =="book report")&&(enableBookExpand)){
return true;
}
if ((rec.data.text =="homework")&&(enableHomeExpand)){
return true;
}
return false;
}
var treepanel = Ext.create('Ext.tree.Panel', {
title: 'Simple Tree',
width: 400,
height: 200,
store: store,
rootVisible: false,
renderTo: Ext.getBody(),
listeners:{
beforeitemdblclick: handleClick,
beforeitemclick: handleClick
},
buttons:[{
text:'Enable Expand "homework"',
handler: function(){ enableHomeExpand = true; }
},
{
text:'Enable Expand "book report"',
handler: function(){ enableBookExpand = true; }
}]
});
}
});
这是小提琴
推荐阅读
- reportbuilder - 如何使用默认过滤器将报表从报表生成器导出到 Excel
- python - Python 文件在 Pycharm 中有效,但在终端中无效
- ios - 使用 SwiftUI 的导航链接视图不是全屏
- r - 如何最小化创建的 R 代码的不可接受的长时间运行时间
- gcc - #line 上的 Clang 错误“预期表达式”(构建 gcc)
- spring - 用于在 REST API 上保存具有多个关系的实体的存储库与 JQPL
- amazon-web-services - 如何使用 AWS 设置绿/蓝部署管道?
- python - 验证时捕获 LDAPError
- postgresql - 在 cloudsql 实例上的所有数据库上启用 GCP 查询洞察
- python - 按熊猫中的一组分组