Extjs 4 Treepanel Перезагрузить и развернуть - PullRequest
1 голос
/ 16 февраля 2012

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

//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 
   });
   } 

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

1 Ответ

6 голосов
/ 16 февраля 2012

Перезагрузите дерево. Я думаю, что проще просто вызвать

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!

...