Столбец управления сеткой заказывается на основе name
, который является комбинированным полем first + ' ' + last
. Клиент хочет заказать по last + ', ' + first
. Мне не разрешено изменять существующий код, он может использовать только переопределения.ExtJS 5.0 - переопределение для обеспечения пользовательского заказа на столбец сетки
Основываясь на результатах поиска в сети, я думаю, что использование sortType
для преобразования входного значения является наименее навязчивым. Но я не уверен, как подключить его.
Я думаю, sortType
работает с полями данных, поэтому в перегрузке initComponent
я могу получить доступ к тому, что мне нужно? Например, это, как я переопределить в окне, чтобы изменить визуализацию:
initComponent: function() {
this.callParent([]);
this.columns[0].renderer =
function(value, metaData, record, rowIdx, colIdx, store, view) {
var result = '';
if (!Ext.isEmpty(record.data) && !Ext.isEmpty(record.data.details)) {
var details = record.data.details;
// value == details.name is 'first last', won't be using that
result = details.last + ', ' + details.first;
}
return result;
};
}
Могу ли я получить доступ к details.name
определению отсюда переопределить sortType
? Согласитесь, что это не лучший подход, потому что мне нужно будет провести синтаксический разбор name
, чтобы разделить его, а затем снова соединить. И это будет иметь проблемы для тех, у кого есть несколько первых и/или фамилий.
Альтернативный подход к перегрузке doSort
, но если у меня нет доступа к details.first
и details.last
, он не будет лучше, чем sortType
. Я видел один пример реализации doSort
, и он выглядит очень сложным. Кто-нибудь знает подробную документацию для doSort
?
спасибо. Я поместил код в конструктор хранилища переопределить: 'var fields = this.model.getFields();', а затем повторил через 'fields', чтобы проверить, не было ли поля. –