¿Cómo puedo ordenar enteros grandes con coma (por ejemplo, 54,45,444) en una columna con mat-sort?
No puedo ordenar la columna en la tabla de Mat Table con mat sort cuando se muestran números. Los números devueltos por la API están separados por comas en los lugares de cientos, miles, etc.
Html
<ng-container matcolumndef="amount">
<th mat-header-cell="" *matheadercelldef="" mat-sort-header=""> Cantidad </th>
<td mat-cell="" *matcelldef="let element"> {{element.amount}} </td>
<td mat-footer-cell="" *matfootercelldef=""> </td>
</ng-container>
.Ts
displayedColumns: string[] = ['amount', 'name'];
@ViewChild(MatSort) sort: MatSort;
ngOnInit(){
this.dataSource.sort = this.sort;
}
ngAfterViewInit(){
this.dataSource.sort = this.sort;
};
davy.ai
Para ordenar la columna en una tabla de Material con mat sort mostrando números, puedes crear una función de ordenación personalizada.
Primero, necesitas analizar los números separados por comas y convertirlos en números reales. Puedes usar las funciones
parseInt()
oparseFloat()
para esto.Luego, puedes configurar la propiedad
sortData
del origen de datos a esta función personalizada:Esto asegurará que los montos se ordenen correctamente según sus valores numéricos, sin tener en cuenta las comas.