如何为 Angular6 中的 ngx-datatable 列编写自定义排序方法?
How to write a custom sorting method for ngx-datatable column in Angular6?
我在我的 Angular6 项目中定义了一个 ngx-datatable 如下,我需要在 table.
中按以下顺序对国家/地区进行排序
代码-
<ngx-datatable [rows]="rows" [limit]="20" [rowHeight]="35" [headerHeight]="35" [footerHeight]="35" [scrollbarV]="true"
[columnMode]="'force'" class="material">
<ngx-datatable-column prop="name" name="name">
<ng-template ngx-datatable-cell-template let-value="value">
{{value}}
</ng-template>
</ngx-datatable-column>
<ngx-datatable-column prop="country" name="country">
<ng-template ngx-datatable-cell-template let-value="value">
{{value}}
</ng-template>
</ngx-datatable-column>
Order of the rows should be - England > America > Russia
我可以按字母顺序对列进行排序,如下所示。
[sorts]="[{prop: 'country'}"
但我需要按照上面的顺序对它们进行排序。行按此顺序排列。 (英国 > 美国 > 俄罗斯).
请帮助我在 ngx-databale 中进行排序或使用自定义比较器。谢谢
中的示例代码
您可以像下面这样创建自定义比较器函数
order = ['England', 'America', 'Russia'];
this.rows.sort((propA, propB) => {
let indexA = this.order.indexOf(propA.country);
let indexB = this.order.indexOf(propB.country);
if (indexA > indexB) {
return 1;
} else if (indexA < indexB) {
return -1;
}
return 0;
});
这是演示 - https://stackblitz.com/edit/ngx-column-reordering-bl4kdh
希望这有帮助
我在我的 Angular6 项目中定义了一个 ngx-datatable 如下,我需要在 table.
中按以下顺序对国家/地区进行排序代码-
<ngx-datatable [rows]="rows" [limit]="20" [rowHeight]="35" [headerHeight]="35" [footerHeight]="35" [scrollbarV]="true"
[columnMode]="'force'" class="material">
<ngx-datatable-column prop="name" name="name">
<ng-template ngx-datatable-cell-template let-value="value">
{{value}}
</ng-template>
</ngx-datatable-column>
<ngx-datatable-column prop="country" name="country">
<ng-template ngx-datatable-cell-template let-value="value">
{{value}}
</ng-template>
</ngx-datatable-column>
Order of the rows should be - England > America > Russia
我可以按字母顺序对列进行排序,如下所示。
[sorts]="[{prop: 'country'}"
但我需要按照上面的顺序对它们进行排序。行按此顺序排列。 (英国 > 美国 > 俄罗斯).
请帮助我在 ngx-databale 中进行排序或使用自定义比较器。谢谢
中的示例代码您可以像下面这样创建自定义比较器函数
order = ['England', 'America', 'Russia'];
this.rows.sort((propA, propB) => {
let indexA = this.order.indexOf(propA.country);
let indexB = this.order.indexOf(propB.country);
if (indexA > indexB) {
return 1;
} else if (indexA < indexB) {
return -1;
}
return 0;
});
这是演示 - https://stackblitz.com/edit/ngx-column-reordering-bl4kdh 希望这有帮助