0

renderandのようなイベントを試してみまし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

がレンダリングされると、取得するイベントが発生しますafterrenderExt.grid.column.Columnしかし、これは、すべてのレコードをレンダリングすると、defaultRenderer.

つまり、最初にグリッドがレンダリングされ、次にストアがロードされ、各レコードが「レンダリング」されます。

于 2012-11-27T16:45:20.780 に答える