1

我正在使用 Extjs 4.1。当数据呈现并到达时,我需要识别网格上的事件。

我检查了“afterrender”事件。但它火到很早

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

请指教

4

2 回答 2

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 回答
2

你是正确的网格渲染事件会在网格渲染后触发,而不是在数据显示后触发。订阅商店load活动怎么样?

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