У меня было 2 требования. Первый должен был отображать таблицу с динамическими столбцами. Я смог выполнить требование. Второй способ - разрешить пользователям изменять порядок столбцов и сохранять их как свои предпочтения, чтобы при следующем входе в систему они видели столбцы в порядке, который они сохранили ранее.
Проблема здесь в том, что в некоторых моих столбцах есть дополнительная логика. Например, столбец SerialNumber имеет логику, что он должен быть тегом привязки и, щелкнув по нему, переместит пользователя к деталям выбранной записи. В столбце «Состояние» имеется логика для установки значка, если его значение равно чему-либо.
3 из 11 столбцов имеют такую логику, где, как и остальные 8, просто отображение значений как есть.
Как добиться переупорядочения со статическими столбцами (созданными с помощью ngx-datatable-column) и динамическими.
Пример:
Dynamic Columns
<ngx-datatable-column *ngFor="let col of dynamicColumns" [prop]="col.Name" [minWidth]="130" [sortable]="true ">
<ng-template let-value="value " let-row="row" ngx-datatable-cell-template>
<label> {{ row[col.Name] | UTCToLocalTime }} </label>
</ng-template>
</ngx-datatable-column>
Static Columns:
<ngx-datatable-column prop="TicketNumber" [minWidth]="145" [sortable]="true " [cellClass]="IsSLABreach">
<ng-template let-value="value " let-row="row " ngx-datatable-cell-template>
<a (click)="displayTicketDetails(row.TicketId) " class="ticketNumberValue" style="cursor: pointer ">
{{ value }}
</a>
</ng-template>
</ngx-datatable-column>