1

Extjs4.1を使用しています。データがレンダリングされて到着したときに、グリッド上のイベントを識別する必要があります。

''afterrender'イベントをチェックしました。しかし、それは早く発火します

   grid.on('afterrender', function () {
        alert(333);
    });

ご意見をお聞かせください

4

2 に答える 2

2

正しいグリッドレンダリングイベントは、データが表示された後ではなく、グリッドがレンダリングされた後に発生します。ストアloadイベントの購読はどうですか?

store.on('load', function() {
...
})
于 2012-06-17T15:58:12.997 に答える
2

グリッドが最初にデータをロードしたタイミングを知る必要がある場合は、Ext.grid.Panel viewreadyイベントを使用してください。データがロードされ、グリッド行がレンダリングされたときに発生します。

例:

this.control({

    'mygridpanel': {

        // select the first record
        viewready: function(grid) {
            var store = grid.getStore(),
                view = grid.getView(),
                selModel = grid.getSelectionModel();
            if (store.getAt(0)) {
                view.focus();
                selModel.select(0);
            }
        },
    },
});

この例はinit、MVCパターンを使用するコントローラーの機能で構成されていますが、MVCパターンを使用しているかどうかわかりませんか?ただし、コメントのスニペットはどちらの方法でも正常に機能するはずです。

また、このイベントは、Ext.grid.Panelそれを起動したオブジェクトを最初の引数として渡します。上記の例からわかるように、これを使用してグリッドへの参照を取得し、ハンドラーで必要なロジックを実行できます。

于 2012-06-17T16:03:42.083 に答える