我是Extjs库的新手,我无法弄清楚如何在GridPanel中添加一些事件的监听器。当我正在异步填充网格时,我希望在向网格面板添加新元素时执行我的函数。
我发现(我认为)正确的事件:
added( Ext.Component this, Ext.container.Container container, Number pos )
但我无法找到一个正确放置侦听器的位置,因为此函数仅在页面加载时执行一次:
Ext.define('MyApp.NewsGrid', {
extend: 'Ext.grid.GridPanel',
alias: 'widget.newsgrid',
initComponent: function() {
Ext.apply(this, {
title: 'News',
store: newsStore,
viewConfig: {
plugins: [{
pluginId: 'preview',
ptype: 'preview',
bodyField: 'testo',
expanded: false
}],
listeners: {
add: function() {
alert("add executed");
},
added: function() {
alert("added executed");
}
}
},
....
问题在于有不同的方法来添加侦听器(viewConfig内部和外部哈希,内部和外部组件定义等...)我无法弄清楚在这种情况下有效的方法。更令人沮丧的是,互联网上有很多地方有版本3的文档,甚至没有指定版本。
答案 0 :(得分:4)
您应该收听Store的add事件:
initComponent: function() {
// somewhere inside initComponent...
this.getStore().on("add", function(store, records) {
alert(records.length + " records added");
}, this);
}