Событие Ext js сработало или вызвано после рендерера

У меня есть столбец сетки, которая использует функцию рендеринга. Какие-нибудь события происходят или вызваны после этого? Я пробовал несколько из них, но все они вызываются на весь столбец, и все они запускаются перед рендерингом (даже после события, после)

заранее спасибо

1 ответ

afterrender срабатывает только один раз, когда столбец размещен на странице. Это базовое событие компонента ExtJS, которое есть почти у всех компонентов ExtJS и не относится к функции рендеринга, используемой для столбцов сетки.

Не совсем уверен, для чего вы пытаетесь это сделать... но если бы я хотел вызывать событие всякий раз, когда выполнялась моя функция рендерера, я бы запускал пользовательское событие из самой функции рендерера. Что-то вроде этого:

Ext.create('Ext.grid.Panel', {
    title: 'After Renderer Event Demo',
    store: Ext.getStore('DummyData'),
    columns: [{
        text: 'Column 1',  
        dataIndex:'aNumber',

        // dummy renderer function that fires an event after execution
        renderer: function(value) {

            // wrapping in a deferred function so that it fires AFTER
            Ext.defer(function() {
                this.fireEventArgs('aftercolumnrenderer', arguments);
            }, 10);

            if (value === 1) {
                return '1 person';
            }
            return value + ' people';
        }


    }, {
        text: 'Column 2',  
        dataIndex:'aString'
    }],
    width: 400,
    forceFit: true,
    renderTo: Ext.getBody()
});

Я мог бы слушать это непосредственно с:

myColumn.on('aftercolumnrenderer', function(value, metaData, record, rowIndex, colIndex, store, view) {

    // do stuff

});

Или из функции управления контроллера, если вы используете ExtJS MVC.

Также смотрите fireEventArgs и метод on для справки.

Другие вопросы по тегам