0

私はextjsGridPanelを持っています

ストアをロードするとき:

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

ここloadMaskでドキュメントで説明されているように、gridviewの構成を提案するつもりでした。しかし、私はそれが何らかの理由で私のために働いていないことに気づきました。

それでもうまくいかない場合は、ここで説明されているように、gridviewのrefreshイベントを使用してください。データがグリッドに完全にロードされた後にのみ起動します。viewConfig次のように、gridpanelの構成を介してアタッチできます。

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 に答える