#angular #user-interface #angular-material #mat-table
#angular #пользовательский интерфейс #angular-material #мат-таблица
Вопрос:
Я хочу настроить динамические столбцы с несколькими параметрами в таблице столбцов для сопоставления
это мой html
<table mat-table [dataSource]="dataT" class="mat-elevation-z8">
<ng-container matColumnDef="{{column.name}}" *ngFor="let column of pgCol">
<th mat-header-cell *matHeaderCellDef> {{column.title}} </th>
<td mat-cell *matCellDef="let element"> {{element[column.name]}} </td>
</ng-container>
<tr mat-header-row *matHeaderRowDef="pgCol"></tr>
<tr mat-row *matRowDef="let row; columns: pgCol;"></tr>
</table>
это мои данные
pgCol= [
{
"name": "id",
"title": "ID",
"show": false,
"sort": false,
"export": false
},
{
"name": "code",
"title": "Code",
"show": true,
"sort": true,
"export": true
},
{
"name": "name",
"title": "Name",
"show": true,
"sort": true,
"export": true
}
]
dataT = [{ "id": 1, "name": "firstbranch", "code": "fifif" },
{ "id": 1, "name": "firstbranch", "code": "fifif" },
{ "id": 1, "name": "firstbranch", "code": "fifif" },
{ "id": 1, "name": "firstbranch", "code": "fifif" },
{ "id": 1, "name": "firstbranch", "code": "fifif" },
{ "id": 1, "name": "firstbranch", "code": "fifif" },
{ "id": 1, "name": "firstbranch", "code": "fifif" },
{ "id": 1, "name": "firstbranch", "code": "fifif" },
{ "id": 1, "name": "firstbranch", "code": "fifif" }];
Я просто хочу, чтобы столбец с кодом данных и именем отображался в соответствии с таким свойством, как сортировка и экспорт
Ответ №1:
Try this one
In HTML
<mat-table [dataSource]='data' matSort matSortDisableClear [matSortActive]='sortoptions.sortcol'
[matSortDirection]='sortoptions.sortdir' (matSortChange)='onSortChange($event)'>
In ts file
sortoptions = { sortcol: 'columnname', sortdir: 'asc' };