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