ExtJs меняют корень дерева - PullRequest
0 голосов
/ 22 марта 2011

Helo:)

У меня есть TreePanel (с кнопкой на его панели инструментов) с корнем AsyncNode.По какой-то причине мне нужно изменить содержимое дерева при нажатии кнопки.Я называю Ext.Ajax.request и он возвращает все необходимые данные.Но как я могу поместить его в TreePanel?

Я попробовал следующий код, но он не работает: (

    Ext.Ajax.request({
        url: '../mocksearch',
        params: {
            pattern: txtSearch.getValue()
        },
        success: function(result, options) {
            searchResultRoot = Ext.decode(result.responseText);
            tree.setRootNode(searchResultRoot);                 
        }
    });

1 Ответ

3 голосов
/ 22 марта 2011

Ваш TreePanel связан с TreeLoader , который отвечает за загрузку и хранение данных.

Таким образом, единственный способ изменить дерево - это изменить данные вTreeLoader.

Вы можете попробовать это: На вашей кнопке измените dataUrl и / или baseParams и вызовите метод Treeloader load.После загрузки Treeloader должен автоматически обновить ваше дерево.

Вы можете попробовать что-то вроде:

mybutton.on('click', function(button, event) {
     var treepanel = this.mytree;
     treepanel.dataUrl = 'mynewurl.php';
     treepanel.baseParams = {page:'tree2'}
     treepanel.getLoader.load( this.mytree.getRootNode() )
}, this);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...