【问题标题】:appendChild does not put expand collapse icon in tree panelappendChild 不会在树面板中放置展开折叠图标
【发布时间】:2013-08-21 10:19:41
【问题描述】:

在extjs中将子节点添加到树面板后,展开/折叠图标不显示。

这里我有一个场景,我只得到节点的直接子节点。在获得直接孩子时,我想将它们添加到所选节点。

我可以添加子节点,但是添加节点后展开/折叠图标没有出现。

以下是我的代码。

onItemExpand : function(nodeinterface,eOpts)
{
    if(!nodeinterface.hasChildNodes())
    {
        nodeinterface.appendChild(dataFromES[0]);
    }
}

这里的数据包含属性 leaf:false 以便它可以有更多的孩子。

非常感谢任何帮助。

谢谢

【问题讨论】:

  • 你用的是什么版本的 ExtJS?

标签: extjs


【解决方案1】:

在添加新子节点之前,将父节点(在您的情况下为 nodeinterface 变量)“leaf”属性设置为 false。

if(!nodeinterface.hasChildNodes())
{
    nodeinterface.set('leaf', false);
    nodeinterface.appendChild(dataFromES[0]);
}

【讨论】:

  • 这里我使用 itemExpand 事件,表示父节点有展开/折叠图标,但是我要添加的子节点呢。
  • 我在这里找到了一个解决方法,我添加了带有空子键的子节点,例如 children : [{}],这会显示展开折叠图标。
【解决方案2】:

我遇到过同样的问题,在我的情况下,问题与节点中缺少 id 属性有关。

我在创建要附加的节点时添加了一个随机 ID,然后正确显示了展开/折叠图标。

亚历克斯

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-24
    • 2010-12-15
    • 2016-02-05
    相关资源
    最近更新 更多