如何在加载成功之前屏蔽treepanel

时间:2013-09-18 14:42:36

标签: extjs extjs4.1

我定义了一个treepanel。我尝试添加mask()等待树正在加载完成。但是没有工作。

这是我的代码

Ext.define('Example.example', {
    extend: 'Ext.tree.Panel',
    alias: 'widget.example',
    title: 'example',
    store: Ext.create('Ext.data.TreeStore', {
    ...
    listeners: {
        'load': function (store, records, success) {
            Ext.ComponentQuery.query('example').getEl().unmask(); // not working
        },
        'beforeload': function (store, options) {                                    
            Ext.ComponentQuery.query('example').getEl().mask();// not working
        }
    }
})
});

如何使工作感谢。

2 个答案:

答案 0 :(得分:3)

EIther使用未记录的ownerTree属性:

beforeload: function() {
    this.ownerTree.getEl().mask("Loading", 'x-mask-loading');
}

或者在方法中注册听众以获得范围:

Ext.define('Example.example', {
    // ...
    ,initComponent: function() {
        this.callParent(arguments);

        this.getStore().on({
            scope: this
            ,beforeload: function() {
                this.getEl().mask("Loading", 'x-mask-loading');
            }
        });
    }
});

答案 1 :(得分:0)

尝试使用Ext.ComponentQuery.query('example').body.mask();使用正文代替getEl()