ExtJS6: передача всего объекта или 2 полей в столбцах gridpanel

При построении значений столбца GridPanel мне нужно искать поле, если у этого поля нет значения, оно должно искать другое поле и отображать его как значение столбца. Теперь, согласно документам ExtJS6, мы можем передать один атрибут данных dataIndex и плесень через визуализированную функцию. Но нет упоминания о том, как можно использовать запасной атрибут, если указанное поле не имеет значения.

Вот фрагмент:

{
  text: 'Title',
  flex: 1,
  dataIndex: '<how-to-pass-object-itself-or-two-fields>',
  renderer: function(value, metaData) {
    return '<i class="fa fa-bars"></i>' +  value;
  }
}

2 ответа

Решение

Функция рендерера имеет больше параметров.

Вы можете получить все поля записи.

var DEFAULT_VALUE = '';

{
    dataIndex : 'a' // or could be 'b', or 'c' or etc…
    renderer: function(value, metaData, record, rowIndex, colIndex, store, view) {
        var fieldA = record.get('a');
        var fieldB = record.get('b');
        var fieldC = record.get('c');

        // …

        return value || DEFAULT_VALUE; // ?
    }
}

В операторе возврата просто замените DEFAULT_VALUE с одним из ваших других значений поля или фактическим значением по умолчанию.

Если ваша сетка сортируется на стороне клиента, вы должны быть осторожны при использовании renderer для рендеринга различных значений записи в вашем столбце.

Вы также можете посмотреть на метод конвертации в Ext.data.field.Field

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