ExtJS4树面板 - 更改没有孩子的节点的图标?

时间:2011-11-25 13:33:20

标签: treeview extjs4 treepanel

我在ExtJS4应用程序中有一个树状面板,我想更改用于节点的图标,以便在它们不包含子节点时使用“叶子”图标。但是一旦添加了子节点,它就会恢复为正常的文件夹图标。实现这一目标的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

想出来:

在初始化treepanel时,所有节点都有allowChildren:trueleaf:false,而包含没有子节点的节点有iconCls:'tree-leaf'。该课程附带的css规则是:

.x-reset .tree-leaf,
.x-reset .x-grid-tree-node-expanded .tree-leaf
{
    width: 16px;
    background-image: url('../ext4/resources/themes/images/gray/tree/leaf.gif');
}

然后,如果一个空节点添加了任何子节点,我将以编程方式删除自定义iconCls css类:

node.set('iconCls', '');

当发生相反的情况时,如果有子节点的节点丢失其子节点并且现在为空,则以编程方式将自定义类添加到其中:

node.set('iconCls', 'tree-leaf');

答案 1 :(得分:0)

创建自己的css表并复制以下样式,这将覆盖默认样式并放置图像而不是主题

.x-tree-icon-leaf {
    background-color: transparent;
    width: 16px;
    height: 16px;
    background-image:url(../img/neogeo.png) !important;
}
.x-tree-icon-parent {
    background-color: transparent;
    width: 16px;
    height: 16px;
    background-image:url(../img/folder-pass.png) !important;
}
.x-tree-icon-parent-expanded {
    background-color: transparent;
    width: 16px;
    height: 16px;
    background-image:url(../img/folder-open-pass.png) !important;
}