使用Extjs更改树节点中的默认图像

时间:2013-07-23 22:50:51

标签: extjs openlayers jstree

我正在使用GeoExt(基于ExtJs)来创建树。在每个节点中,我想要左边的相应图像,而不是像this site那样的默认图像default image。我该怎么办?

修改

我找到了this example,但我不知道如何添加儿童

编辑2 这是我的代码的一部分:

var bpn = new OpenLayers.Layer.WMS("bpn", 
    url,
    {
        LAYERS: [ 'Año 2004', 'Año 2005', 'Año 2006', 'Año 2007', 'Año 2009'],
        format: "image/png",
        transparent: "true",
        projection: 'EPSG:4326'
     },
     {
         buffer: 0, 
         displayOutsideMaxExtent: true,
         isBaseLayer: false,
         displayInLayerSwitcher: false,
         yx: {'EPSG:4326' : true}
      });

var treeConfig = [
    {
        nodeType: "gx_layer",
        layer: bpn,
        isLeaf: false,

        loader: {
            param: "LAYERS",

        },
        expanded: false
    }];

tree = new Ext.tree.TreePanel({
    border: true,
    region: "west",
    title: "Entre Ríos",
    width: 250,
    split: true,
    collapsible: true,
    collapseMode: "mini",
    autoScroll: true,

    loader: new Ext.tree.TreeLoader({
        applyLoader: true,
        uiProviders: {
            "layernodeui": LayerNodeUI
        }
    }),
    root: {
        nodeType: "async",
        children: treeConfig
    },     
    rootVisible: false,
    lines: false,
});

每个图层(节点)'Año 2004', 'Año 2005', 'Año 2006', 'Año 2007', 'Año 2009'都有不同的图像。我应该在treeConfig中更改哪些内容?

2 个答案:

答案 0 :(得分:1)

这是通过在节点数据中使用iconCls字段来实现的。

修改

示例(见fiddle):

Ext.widget('treepanel', {
    renderTo: Ext.getBody(),
    height: 200,
    store: new Ext.data.TreeStore({
        root: {
            text: 'Root',
            expanded: true,
            children: [{
                text: 'Node 1',
                iconCls: 'icon1'
            },{
                text: 'Node 2',
                iconCls: 'icon2'
            },{
                text: 'Node 3',
                iconCls: 'icon1'
            }]
        }
    })
});

答案 1 :(得分:0)

rixo是正确的,您必须使用iconCls为每个节点设置图标。在你的情况下,"孩子" rixo示例中的属性与您的" treeConfig"相同。阵列。所以你必须添加" iconCls"在里面" treeConfig"数组元素。

目前您只有一个子节点(图层)元素,您可以在" treeConfig"中添加更多子节点(图层)。阵列。

(对不起,我没有足够的声誉评论rixo的回答,所以我只是回答新问题)