Srdjan Radisa
Srdjan Radisa

Reputation: 1

Ext4 reload tree

I am newbie to EXT and I am having problem with reloading EXT 4 tree. I have been trying with:

Ext.tree.getLoader().load(tree.root);
Ext.tree.load(tree.root);
Ext.tree.getRootNode().reload();
Ext.tree.TreePanel.root.reload();
Ext.data.TreeStore.reload();

And nothing helped, I hope someone could clarify this to me, here is the code: Edit: I have added complete code, as you can see everything is inside extOnReady method, I have removed var before var tree and still I got the same result

Ext.QuickTips.init();

var store = Ext.create('Ext.data.TreeStore',{
    proxy: {
        type: 'ajax',
        url: 'url1'
    },
    root: {
        text: 'TOPP',
        id: '1',
        expanded: true
    },
    folderSort: true,
    sorters: [{
        property: 'text',
        direction: 'ASC'
    }]
});

tree = Ext.create('Ext.tree.Panel',{
    id:'company_tree',
    store: store,
    viewConfig: {
        plugins: {
            ptype: 'treeviewdragdrop'
        }
    },
    renderTo: 'tree-div',
    height: 300,
    width: 766,
    title: gettext('Companies'),
    useArrows: true,
    dockedItems: [{
        xtype: 'toolbar',
        items: [ {
            text: gettext('Collapse All'),
            handler: function(){
                tree.collapseAll();
            }
        }]
    }]
});
var loadingMask = new Ext.LoadMask(Ext.get('tree-div'),{
    msg: gettext("Loading...")
});

tree.on('itemmove', function(tree, oldParent, newParent, index, options){

    if(confirm(gettext('Are you sure you want to move this company?'))){
        loadingMask.show();
        Ext.Ajax.request({
            scope: this,
            url: 'url2/',
            success:function(){
                loadingMask.hide();
            },
            params: {
                'ajaxAction[moveNode]':  '',
                index: index,
                nodeid: tree.data.id,
                parentNodeID: newParent.data.id,
                oldParentNodeID: oldParent.data.id
            }
        });
    }else{
        Ext.getCmp('company_tree').getStore.load();
    }
});

Also I have tried to reload through console[Ext.getCmp('company_tree').getStore.load();] and it worked. When I try it through code it returns an error regarding fly function

n is null
[Break On This Error]   

Ext.fly(n.firstChild ? n.firstChild : n).highlight(me.dropHighlightColor);

Upvotes: 0

Views: 2192

Answers (1)

Rene Saarsoo
Rene Saarsoo

Reputation: 13917

Are you really trying to call these methods directly on Ext.tree namespace or Ext.tree.TreePanel class? If so you really need to educate yourself on the difference between objects and classes.

And don't just attempt to guess what a method might be named. Had you looked it up from the manual you would have found out that there is no such method as reload on Tree, TreeStore or TreeView.

What you need to call to reload the tree is the load method of TreeStore:

tree.getStore().load();

Upvotes: 2

Related Questions