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

时间:2018-10-08 22:07:38

标签: angular sorting syncfusion stringcomparer

排序功能在syncfusion-ej2 Grid(https://ej2.syncfusion.com/angular/documentation/grid/api-column.html#sortcomparer)的文档下进行了描述。我已经在Angular应用程序中实现了它。尽管如此,我仍然找不到实现目标的方法,因为它无法达到我的预期(可能是我想错了方向)。

我只需要向网格引入默认排序。必须在“状态”列上执行排序,该列可以是“过期”,“计划中”或“已完成”。排序顺序应遵循我提到的相同顺序。 我可以使用“ sortComparer”来实现它吗?如果是这样,我在下面引用的现有解决方案上必须执行哪些更改?

[HTML]

if (Validation.IsValid()){
            //do something if the form is valid
        }

[TS]

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

1 个答案:

答案 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