0

我尝试了类似的事件render,但不知何故,afterrender它们都在创建 DOM 元素之前拍摄。renderer()defaultRenderer()

Ext.define( 'MyApp.column.MyColumn', {
  extend: 'Ext.grid.column.Column',

  constructor: function() {
     this.callParent( arguments );

     this.on( 'afterrender', function() {
        var oDomElement = Ext.get( 'MyColumn.MyApp.model.Record-0-ext-record-22' );

        console.log( 'DOM-Element: ', oDomElement );
     } );
  },

  defaultRenderer: function( d, m, oRecord ) {
     return '<div id="MyColumn.' + oRecord.id + '" />';
  }
} );

当我之后检查 DOM 时,具有 ID 的元素MyColumn.MyApp.model.Record-0-ext-record-22存在,但在触发oDomElement时始终为空。afterrender

4

1 回答 1

1

afterrender您获得的事件Ext.grid.column.Column将在渲染后发生。但这与说的不一样 - 当您渲染每条记录时,这将触发defaultRenderer.

换句话说,首先渲染网格,然后加载存储,每条记录都被“渲染”。

于 2012-11-27T16:45:20.780 回答