ExtJS: как динамически добавлять дочерние узлы в панель дерева

Как вы можете программно добавить дочерний узел в существующую панель TreePanel с помощью JavaScript?

У меня есть TreePanel, который отображает активные слои карты (с использованием GeoExt):

treeConfig = new OpenLayers.Format.JSON().write([{
    nodeType: "gx_baselayercontainer",
    text: "Base layers",
    expanded: true
    }, {
    nodeType: "gx_overlaylayercontainer",
    text: "Overlays",
    expanded: true,
    loader: {
        baseAttrs: {
            radioGroup: "foo",
            uiProvider: "use_radio"
        }
    }
}], true);

treePanel = new Ext.tree.TreePanel({
    id: 'mainpanel',
    border: true,
    region: "west",
    title: "Map layers",
    width: 200,
    split: true,
    collapsible: true,
    margins: '0 0 5 5',
    collapseMode: "mini",
    autoScroll: true,
    loader: new Ext.tree.TreeLoader({
        applyLoader: false,
        uiProviders: {
            "use_radio": LayerNodeUI
        }
    }),
    root: {
        nodeType: "async",
        children: Ext.decode(treeConfig)
    },
    listeners: {
        "radiochange": function(node){
            alert(node.layer.name + " is now the the active layer.");
        }
    },
    rootVisible: false,
    lines: false
});

Пользователь должен иметь возможность добавить слой наложения, нажав кнопку, однако я не могу найти примеров того, как это сделать.

Есть идеи?


person DavidR    schedule 07.07.2010    source источник


Ответы (3)


Получите родительский узел с помощью getNodeById. или getRootNode и добавьте дочерний узел с помощью appendChild.

person Robby Pond    schedule 07.07.2010

См. пример по адресу:

http://dev.geoext.org/geoext/trunk/geoext/examples/layercontainer.html

Определено ли ваше свойство слоев для treePanel?

treePanel.layers.add(layer);
person geographika    schedule 09.07.2010

вот пример кода для динамического добавления дочернего элемента в панель дерева

Ext.getCmp('treeid').getRootNode().appendChild(response from database);
person sravan kumar    schedule 02.07.2014