在 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;
};
排序功能在 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;
};