Сортировать столбец по заданному порядку в Syncfusion Essential JS 2 Grid для Angular 5

Функция сортировки описана в документации для syncfusion-ej2 Grid ( https://ej2.syncfusion.com/angular/documentation/grid/api-column.html). Я уже реализовал это в своем приложении Angular. Тем не менее, я не мог найти способ достичь своей цели, так как она не работает так, как я ожидал (может быть, я ошибаюсь).

Мне просто нужно ввести сортировку по умолчанию в сетке. Сортировка должна быть выполнена в столбце "Статус", который может быть "Просрочено", "Запланировано" или "Завершено". Порядок сортировки должен следовать той же последовательности, что и я. Могу ли я добиться этого с помощью sortComparer, как это? Если да, какие изменения я должен выполнить в существующем решении, которое я привел ниже?

[HTML]

<!-- Status -->
<e-column field="statusDisplay" headerText="Status" width="85" [sortComparer]='sortComparer'>

[TS]

  public sortComparer = (reference: string, comparer: string) => {
    if (reference == "Overdue") {
      return -2;
    }
    else if (reference == "Planned") {
      return -1;
    }
    else if (reference == "Completed") {
      return 1;
    }
    return 0;
  };

1 ответ

Решение

Пожалуйста, измените ваш sortComparer определение как ниже.

public comparer = (reference: string, comparer: string) => {
  if (reference == "Overdue") {
   return -1;
  }
  else if (reference == "Planned") {
    if (comparer == "Overdue") {
      return 1;
    } else {
      return -1;
    }
  }
  else if (reference == "Completed") {
   return 1;
  }
  return 0;
};

http://next.plnkr.co/edit/ihwvd7a6UxXYI1N5?preview

Другие вопросы по тегам