在 Angular 5 的 Syncfusion Essential JS 2 Grid 中按给定顺序对列进行排序

Sort a column by given order in Syncfusion Essential JS 2 Grid for Angular 5

排序功能在 syncfusion-ej2 网格 (https://ej2.syncfusion.com/angular/documentation/grid/api-column.html#sortcomparer) 的文档中进行了描述。我已经在我的 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;
  };

请更改您的 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