Номер сортировки Datagrid - хотите null последний - PullRequest
0 голосов
/ 20 сентября 2019

Есть ли способ настроить сортировку для столбца таблицы данных, который является числовым, но может быть нулевым, так что если пользователь сортирует список, он всегда будет отображаться с нулевым последним, т.е. asc будет 1,2,3, нулевым desc будет3,2,1, null

Полезно, так как множество строк будет иметь нулевое значение, и если щелкнуть по сортировке, пользователь сосредоточится на просмотре информации, сортированной вами, как указано выше.

1 Ответ

0 голосов
/ 20 сентября 2019

Столбцы могут иметь настраиваемую функцию сортировки, которую предоставляет приложение.

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

Сначала определите CustomComparator для приложения, которое оно будет использовать:

import {ClrDatagridComparatorInterface} from "@clr/angular";

class CustomComparator implements ClrDatagridComparatorInterface<any> {
    compare(a: any, b: any) {
      if (a.key && b.key) {
        return a.key - b.key;
      } else {
        return null;
      }
    }
}

Затем объявите компаратор как открытый объект в компоненте с сеткой данных

public customComparator = new CustomComparator();

Наконец, обновите шаблон, чтобы объявить об использовании настраиваемого компаратора в столбце, который нуждается в этом:

<clr-dg-column [clrDgField]="'key'"
  [clrDgSortBy]="customComparator">
    Key
</clr-dg-column>

Вот ссылка на блик стека с имплантированным пользовательским компаратором, который всегда возвращает нулевые элементы в последнюю очередь.https://stackblitz.com/edit/so-58020609-custom-sorting

...