我正在使用GeoExt(基于ExtJs)来创建树。在每个节点中,我想要左边的相应图像,而不是像this site那样的默认图像。我该怎么办?
修改
我找到了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
中更改哪些内容?
答案 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的回答,所以我只是回答新问题)