在 ExtJs 4.1 TreePanel 中隐藏一个节点

Posted

技术标签:

【中文标题】在 ExtJs 4.1 TreePanel 中隐藏一个节点【英文标题】:Hiding a node in ExtJs 4.1 TreePanel 【发布时间】:2013-10-04 12:02:24 【问题描述】:

如何根据某些条件隐藏 ExtJs 4.1 TreePanel 中的某些节点? 我们可以通过这样做在 ExtJs 3.4 中隐藏节点:

tree.getRootNode().cascade(function()  // descends into child nodes
    if(this.attributes['status'] == 100)  // test this node
        this.getUI().hide() // hide this node
    
)

但 ExtJs 4.1 不再支持此方法。

【问题讨论】:

如果您从存储中删除记录,它们将不会显示在树中。如果您需要根据命令动态显示和隐藏,您可以过滤商店。 【参考方案1】:

Sencha 的论坛上有一个topic about this。这似乎不受支持,但有解决方法。

【讨论】:

【参考方案2】:

以ExtJS 6为例,当read config为false时,隐藏节点:

hideItemsReadFalse: function () 
    var me = this,
        items = me.getReferences().treelistRef.itemMap;


        for(var i in items)
            if(items[i].config.node.data.read == false)
                items[i].destroy();
            
        

根:


    "text": "root",
    "children": [
        
            "text": "Atualização",
            "iconCls": "x-fa fa-list",
            "children": [
                
                    "leaf":true,
                    "text": "Empresas",
                    "module": "empresas",
                    "iconCls": "x-fa fa-building",
                    "read": false
                ,
                
                    "leaf":true,
                    "text": "Produtos",
                    "module": "produtos",
                    "iconCls": "x-fa fa-cubes",
                    "read": true
                
            ]
        
    ]

【讨论】:

以上是关于在 ExtJs 4.1 TreePanel 中隐藏一个节点的主要内容,如果未能解决你的问题,请参考以下文章

在 ExtJs 4.1 中选择树面板的第一个叶节点

无法在 extjs 4 的 Treepanel 中显示 json 数据

在 ExtJs 4.1 树面板中通过 id 或 name 查找节点

ExtJs基础知识总结:DomIFrame和TreePanel

ExtJs - TreePanel 的扩展路径不起作用

在 ExtJs 4.0 TreePanel 中更改文件夹和叶子节点的顺序