Quando dobbiamo creare una rappresentazione tabellare dei dati in Angular, la cosa più semplice è ricorrere all'utilizzo dell'elemento HTML table a alla direttiva ngFor per creare tante righe quanti sono i record da mostrare. Se abbiamo molti component in cui dobbiamo mostrare dati tabellari, può essere comodo usare la DataTable che ci offre Angular CDK.
Questo componente accetta in input un datasource, la lista delle colonne e mette insieme questi dati per generare una tabella per noi. Osserviamo il prossimo esempio.
<table cdk-table [dataSource]="myData">
<!-- FirstName -->
<ng-container cdkColumnDef="firstName">
<th cdk-header-cell *cdkHeaderCellDef> first name </th>
<td cdk-cell *cdkCellDef="let element"> {{element.firstName}} </td>
</ng-container>
<!-- LastName -->
<ng-container cdkColumnDef="lastName">
<th cdk-header-cell *cdkHeaderCellDef> Last name </th>
<td cdk-cell *cdkCellDef="let element"> {{element.lastName}} </td>
</ng-container>
<tr cdk-header-row *cdkHeaderRowDef="displayedColumns"></tr>
<tr cdk-row *cdkRowDef="let row; columns: displayedColumns;"></tr>
</table>Ed il relativo codice:
@Component({
templateUrl: 'view.html',
})
export class TableExample {
displayedColumns: string[] = ['firstName', 'lastName'];
dataSource = new [...];
}Nel tag table inseriamo l'attributo cdk-table che associa la tabella al component di Angular CDK e associamo il data source contenente i dati. Successivamente usiamo un component ng-container per ogni colonna (tramite la direttiva cdkColumnDef). Al suo interno definiamo il tag html per specificare l'intestazione della colonna e la cella che conterrà il valore. Infine, definiamo il tag tr che agisce come riga (tramite la direttiva cdk-header-row) con le intestazioni e un altro tag tr che agisce come contenitore di ogni singola riga (tramite la direttiva cdk-row).
In questo modo possiamo definire logicamente il contenuto della nostra tabella e lasciare che sia Angular CDK a mettere insieme i pezzi e renderizzare il tutto.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Ridurre il reflow ottimizzando il CSS
Ridurre il reflow cambiando il CSS
Evitare memory leaks nelle closure JavaScript
Arricchire l'interfaccia di .NET Aspire
Utilizzare Hybrid Cache in .NET 9
Introduzione ai web component HTML
Usare i settings di serializzazione/deserializzazione di System.Text.Json di ASP.NET all'interno di un'applicazione non web
Conoscere il rendering Server o WebAssembly a runtime in Blazor
Gestione CSS in Blazor con .NET 9
Autenticazione di git tramite Microsoft Entra ID in Azure DevOps
Utilizzare Locust con Azure Load Testing
Integrare modelli AI in un workflow di GitHub


