Группировка в магазине со значениями в 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>'
]
Другие вопросы по тегам