Как получить доступ к другим полям записи внутри столбца виджетов сетки в Extjs6?

У меня есть сетка со столбцом виджета progressbar:

{
    xtype    : 'widgetcolumn',
    dataIndex: 'progress',
    widget: {
        xtype: 'progressbarwidget',
        textTpl: [
            '{percent:number("0")}% done'
        ]
    }
}

Как я могу изменить textTpl на что-то вроде {record.data.field1} out of {record.data.field2}, кажется, что доступно только текущее значение столбца.

См. http://examples.sencha.com/extjs/6.0.1/examples/kitchensink/#widget-grid


person serg    schedule 18.03.2016    source источник


Ответы (1)


Если вы заглянете в код progressbarwidget, ваши опасения вполне обоснованы.

updateValue: function(value, oldValue) {
    ...
    if (textTpl) {
        me.setText(textTpl.apply({
            value: value,
            percent: Math.round(value * 100)
        }));
    }

Вам нужно будет расширить этот класс, переопределить функцию updateValue и использовать что-то вроде этого:

me.setText(textTpl.apply({
    value: value,
    percent: Math.round(value * 100),
    record: me.$widgetRecord
}));

и вот вы идете.

person Alexander    schedule 19.03.2016