0

我有 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'

但是在那次事件之后不久,当我看到白色网格(在取消屏蔽和填充行之间)时。

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

谢谢

4

1 回答 1

3

我打算按照文档中的说明建议 gridviewloadMask配置。但我注意到由于某种原因它对我不起作用。

如果它也不适合您,只需使用此处refresh介绍的 gridview 事件。它只会在数据完全加载到网格后触发。您可以像这样通过网格面板的配置附加它: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');
                }

            },
        });
    }
});
于 2012-07-31T15:40:11.793 回答