Extjs4和绑定函数到GridPanel中的事件

时间:2011-06-07 15:12:50

标签: extjs grid listener extjs4

我是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的文档,甚至没有指定版本。

1 个答案:

答案 0 :(得分:4)

您应该收听Store的add事件:

initComponent: function() {
    // somewhere inside initComponent...
    this.getStore().on("add", function(store, records) {
        alert(records.length + " records added");
    }, this);
}