2015-02-24 5 views
0

Когда сортировка панели сетки запускается в столбце «Электронная почта», как мне сначала принудительно сортировать ASC в столбце «Имя», а затем для EXTJS выполнить сортировку по столбцу «Электронная почта», следующий.EXTJS 4.2 - Панель сетки Множественная сортировка сетки

я нашел следующий пример, который находится в правильном направлении .. http://cdn.sencha.com/ext/gpl/4.2.0/examples/grid/multiple-sorting.html

... но я не могу видеть, как я бы это реализовать в GridPanel, когда пользователь нажимает на колонку рода, пример использует кнопку против магазина напрямую ... Единственное событие, которое, я думаю, я могу использовать, это сортировка по сетке, но это событие сортировки по почте.

создать скрипку пример https://fiddle.sencha.com/#fiddle/imt где я положить сортировщик в магазине

sorters: [{ 
    property: 'Name', 
    direction: 'ASC' 
}], 

, но после того, как играть с другими столбцами видов в сетке, сортировщик не приоритет на «Name» больше.

Любые рекомендации?

+0

Не знаете, почему я проголосовал за законный вопрос? – user2574678

ответ

0

Как насчет использования события headerclick в сетке. Это берет конфигурацию с щелчком столбца в качестве одного из параметров, поэтому на основе этого вы можете применить собственную собственную сортировку к основному хранилищу.

+0

Спасибо, заглянем в него, оцените ваш вклад. – user2574678

+0

Mindparse, можете ли вы рассказать о том, как я буду распространяться на conig, переданный здесь, пожалуйста? – user2574678

0

Но действительно ли это проблема сортировки дважды? В противном случае вы можете переопределить событие headertriggerclick для Ext.grid.header.ContainerView.

sortchange: function (ct, column, direction, eOpts) { 

var store = column.up('gridpanel').getStore(); 

store.sort([{ 
    property : 'name', 
    direction: 'ASC' 
}, { 
    property : column.dataIndex, 
    direction: direction 
}]); 

} 
+0

Спасибо, попробовал, но сделал сетку невосприимчивой, я рассмотрю переопределение ... – user2574678

0

Проблема была в названии полей. Вы заглавили «Имя» в сортировщиках, но фактическое поле - «имя».

fields: [ 
    {name:'name'}, 
    {name:'summaryId'}, 
    {name: 'id'}, 
    {name:'email'}, 
    {name:'phone'}, 
], 

Когда я изменил его на «имя», он отсортировался с этим и любыми другими сортировщиками.

sorters: [{ 
    property: 'name', 
    direction: 'ASC' 
    },{ 
    property:'email', 
    direction: 'DESC' 
    }], 
Смежные вопросы