Сортировка одного столбца на основе другого столбца в сетке 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
                    });
            }
        }
    }
 ]
Другие вопросы по тегам