Как перезагрузить Ext.tree. TreePanel по требованию?

От MSDN: энергозависимый модификатор обычно используется для поля, к которому получают доступ несколько потоков, не используя оператор блокировки для сериализации доступа. Используя энергозависимый модификатор гарантирует, что один поток получает самое актуальное значение, записанное другим потоком.

7
задан Sergey Stolyarov 15 October 2009 в 10:31
поделиться

1 ответ

Вам нужен метод load для TreeLoader. Так что что-то вроде этого должно работать с вашим примером.

tree.getLoader().load(tree.root);

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

Ext.onReady(function() {
    var root = new Ext.tree.AsyncTreeNode({
        text: 'Ext JS',
        id: 'src'
    });
    var reloadTree = function() {
        tree.enable();
        tree.getLoader().dataUrl = 'get-nodes2.php';
        tree.getLoader().load(tree.root);
    };

    var tree = new Ext.tree.TreePanel({
        animate: true,
        autoScroll: true,
        nodeType: 'async',
        loader: new Ext.tree.TreeLoader(),
        containerScroll: true,
        border: false,
        disabled: true,
        id: 'myTree'
    });

    var myPanel = new Ext.Panel({
        items: tree,
        border: false,
        tbar: [{
            text: 'Refresh',
            handler: reloadTree
        }]
    });

    tree.setRootNode(root);
    myPanel.render('tree');
});

Ура

Так что что-то вроде этого должно работать с вашим примером.

tree.getLoader().load(tree.root);

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

Ext.onReady(function() {
    var root = new Ext.tree.AsyncTreeNode({
        text: 'Ext JS',
        id: 'src'
    });
    var reloadTree = function() {
        tree.enable();
        tree.getLoader().dataUrl = 'get-nodes2.php';
        tree.getLoader().load(tree.root);
    };

    var tree = new Ext.tree.TreePanel({
        animate: true,
        autoScroll: true,
        nodeType: 'async',
        loader: new Ext.tree.TreeLoader(),
        containerScroll: true,
        border: false,
        disabled: true,
        id: 'myTree'
    });

    var myPanel = new Ext.Panel({
        items: tree,
        border: false,
        tbar: [{
            text: 'Refresh',
            handler: reloadTree
        }]
    });

    tree.setRootNode(root);
    myPanel.render('tree');
});

Ура

Так что что-то вроде этого должно работать с вашим примером.

tree.getLoader().load(tree.root);

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

Ext.onReady(function() {
    var root = new Ext.tree.AsyncTreeNode({
        text: 'Ext JS',
        id: 'src'
    });
    var reloadTree = function() {
        tree.enable();
        tree.getLoader().dataUrl = 'get-nodes2.php';
        tree.getLoader().load(tree.root);
    };

    var tree = new Ext.tree.TreePanel({
        animate: true,
        autoScroll: true,
        nodeType: 'async',
        loader: new Ext.tree.TreeLoader(),
        containerScroll: true,
        border: false,
        disabled: true,
        id: 'myTree'
    });

    var myPanel = new Ext.Panel({
        items: tree,
        border: false,
        tbar: [{
            text: 'Refresh',
            handler: reloadTree
        }]
    });

    tree.setRootNode(root);
    myPanel.render('tree');
});

Ура

7
ответ дан 7 December 2019 в 07:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: