2012-02-16 5 views
1

Я использую древесную панель Extjs4 с данными Json. Я хочу перезагрузить древовидную структуру и вам нужно развернуть дерево меню на указанный узел. Я использую следующий код. Пожалуйста, дайте мне знать, как это сделать.Extjs 4 treepanel Перезагрузка и разворачивание

//Define tree store 

var store = Ext.create('Ext.data.TreeStore', { 
    proxy: { 
     type: 'ajax', 
     url: 'my_tree.php', 
    }, 

    noCache: false 
}); 

// Treepanel 
var treePanel = Ext.create('Ext.tree.Panel', { 
    id: 'mytree', 
    renderTo: 'tree_div', 
    height: 400, 
    bodyBorder: false, 
    border: false, 
    singleExpand: true, 
    rootVisible: false, 
    store: store, 
    useArrows: true 
}); 

//Reload tree 
    function reload_tree(){ 
     var tree_panel = Ext.getCmp('mytree'); 
     tree_panel.enable(); 
     tree_panel.getLoader().dataUrl = 'my_tree.php'; 
     tree_panel.getLoader().load(tree_panel.root); 
     //Expand tree node 
     tree_panel.getLoader().on('load', function(loader, node){ 
       tree_panel.getNodeById(nodeid).expand(); 
    //here node id is tree menu nodeid 
    }); 
    } 

Заранее спасибо

ответ

6

Reload дерева я думаю, что проще просто позвонить

treePanel.getStore().load(); 

, то вы можете слушать событие нагрузки, так что данные все неправдоподобные и, наконец, из выберите нужный узел.

treePanel.on("load", function(treeStore, records, successful, operation)){ 

    var id = 4; // This is the ID of the node that somehow you know in advance 
    var node = treeStore.getNodeById(id); 

    treePanel.expandPath(node.getPath()); 
}); 

HTH!

+0

Спасибо за ваш быстрый повтор. Деревопанель загружается отлично, но не расширяется. В firebug отображается ошибка «node.getPath не функция». – siva565

+0

О, мой плохой, извините, что getPath() исчез в ExtJS 4, хотя у вас есть и альтернативный способ расширить желаемый узел, пожалуйста, посмотрите на ответ Molecule Man в этом посте http://stackoverflow.com/questions/6709106/ expand-a-tree-path-by-send-the-internalid-as-parameter –

+0

humm .. Спасибо Байт-раб сильно благодарит. Это прекрасно работает. Узел расширяет то, что я ожидаю, но он не выбран (влияет на стиль). Обычно, если какой-либо выбранный узел treemunu имеет несколько разных выбранных стилей. можешь мне помочь? – siva565

Смежные вопросы