extjs grid真正完整的后续活动?

时间:2012-07-31 08:59:24

标签: javascript events extjs grid

我正在使用extjs GridPanel

当我加载商店时:

I do Ext.getBody().mask();

Grid 'afterrender' event fires first

Store 'load' event fires second

I attached unmask function to  store load 'event'

但事件发生后不久, 当我看到白色网格(在unmask和行之间填充)。

在真正的完整后续事件中取消屏蔽的正确方法是什么? 我的意思是 - 当所有行都被渲染时。

由于

1 个答案:

答案 0 :(得分:3)

我打算在文档中建议gridview的loadMask配置为here。但是我注意到它出于某种原因不适合我。

如果它对你不起作用,只需使用gridview的refresh事件作为涵盖的here。它只会在数据完全加载到网格后触发。您可以通过gridpanel的viewConfig配置附加它,如下所示:

Ext.create('Ext.grid.Panel', {
    title: 'My Grid Panel',
    // ... other grid panel configs
    viewConfig: {
        listeners: {
            refresh: function(gridview) {
                console.log(gridview);
                console.log('is fully loaded');
            }
        }
    },
});

或者如果您使用的是MVC应用程序架构:

Ext.define('MyApp.controller.MyController', {
    extend: 'Ext.app.Controller',

    models: ['MyModel'],

    stores: ['MyStore'],

    views:  ['MyGridPanel'],

    init: function() {
        var me = this;

        me.control({

            // ... other event handlers

            'mygridpanel > gridview': {

                refresh: function(gridview) {
                    console.log(gridview);
                    console.log('is fully loaded');
                }

            },
        });
    }
});