Группировка в магазине со значениями в extjs 6.2
Я пытаюсь сгруппировать свой магазин по названию отдела. Название отдела также содержит некоторые нулевые значения. когда я пытаюсь сгруппировать вместе с функцией сортировки его результат в нескольких группах с одним и тем же именем.
см. эту скрипку для деталей. Я не понимаю, что я делаю неправильно. Добрый совет.
1 ответ
Ваш сортировщик Fn не так.
SorterFn должен возвращать три разных значения:
1
если второй аргумент строго больше, чем первый.-1
если второй аргумент строго меньше, чем первый.0
если оба аргумента являются одной и той же группой.
Ваш sorterFn никогда не возвращается 0
, Попробуй это:
sorterFn: function(a, b) {
if(a.get('department')=="Management" && b.get('department')=="Management") return 0;
if(a.get('department')=="Management") return 1;
if(b.get('department')=="Management") return -1;
if(a.get('department') < b.get('department')) return 1;
if(a.get('department') > b.get('department')) return -1;
return 0;
},
Кроме того, ваш transform
функция бесполезна. Называется только с оригинала sorterFn
, который вы переписываете. Вы должны учитывать нулевые значения в вашем sorterFn, если хотите. (Тем не менее, обычно в конце можно добавить запасные категории, такие как "Другие", а не между "ИТ" и "Продажи".)
Кроме того, чтобы написать отдел в строке заголовка, вы должны переопределить groupHeaderTpl
шаблон, например
groupHeaderTpl: [
'<tpl if=\'name\'>{name}<tpl else>Others</tpl>'
]