开发者

Extjs4 and binding functions to events in GridPanel

I'm new to Extjs library and I cannot figure out how to add listener to some events in GridPanel. As I'm filling the grid asynchronously I want my function to be executed when we add new element to grid panel.

I found (I think) correct event:

added( Ext.Component this, Ext.container.Container container, Number pos )

but I cannot find a correct place to put the listener as this function is executed only once on the page load:

Ext.define('MyApp.NewsGrid', {
  extend: 'Ext.grid.GridPanel',
 开发者_StackOverflow中文版 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");
          }
        }
      },
 ....

The problem is that there are different ways to add listeners (inside and outside viewConfig hash, inside and outside component definition etc...) and I cannot figure out one that works in this case. What makes it even more frustrating is that there are many places in the internet with documentation for version 3 or even without specifying the version.


You should listen the add event of Store:

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜