Сортировка одного столбца на основе другого столбца в сетке ExtJs 4.1
Я использую ExtJs 4.1 Framework. У меня есть сетка, которая показывает только один столбец (имя). Сетка связана с магазином, который имеет два поля (Name и SortOrder). Поле "имя" в магазине связано со столбцом Имя сетки. Я хочу отсортировать столбец имени на основе значения, доступного в поле SortOrder в магазине. Как я могу реализовать такую логику.
Спасибо
3 ответа
Решение
Вы имеете в виду что-то вроде этого:
...
columns: [{
header: 'Name',
dataIndex: 'Name',
sortable: true,
doSort: function(state){
var ds = this.up('tablepanel').store;
ds.sort({
property: 'SortOrder',
direction: state
});
}
....
}]
Есть также немного более простое решение:
... столбцы: [{ заголовок: "Имя", dataIndex: "Имя", сортируемый: правда, getSortParam: function() { вернуть 'SortOrder'; } ... }] ...
Таким образом, вместо переопределения doSort () вы можете просто переопределить метод getSortParam() (который используется doSort ()).
Еще один способ сделать это по щелчку заголовка.
columns: [
{
header: 'Name',
dataIndex: 'Name',
listeners: {
headerclick: function() {
var store = this.up('grid').getStore();
store.sort({
property: 'SortOrder',
direction: this.sortState
});
}
}
}
]