I am trying to apply pagination on the data table but its not working as expected.
I have been trying to apply pagination through @viewChild. have imported necessary module.
This is my code...
import {MatPaginator} from '@angular/material';
import {MatPaginatorModule} from '@angular/material/paginator';
import {MatTableDataSource} from '@angular/material';
OFFER_DATA = new MatTableDataSource<IOfferItems>(this.OFFER_DATA);
@ViewChild(MatPaginator) paginator: MatPaginator;
constructor(private _offerService: OfferService){}
ngOnInit() {
this._offerService.getOffers()
.subscribe((offerData) => {
this.OFFER_DATA = offerData;
this.OFFER_DATA.paginator = this.paginator;
});
}
HTML -
<table mat-table [dataSource]="OFFER_DATA" matSort class="mat-elevation-z8">
<ng-container matColumnDef="id">
<th mat-header-cell *matHeaderCellDef mat-sort-header> ID </th>
<td mat-cell *matCellDef="let offer"> {{offer.id}} </td>
</ng-container>
<ng-container matColumnDef="name">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Name </th>
<td mat-cell *matCellDef="let offer"> {{offer.name}} </td>
</ng-container>
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
<tr mat-row *matRowDef="let row; columns: displayedColumns;"
(click)="selection.toggle(row)">
</tr>
</table>
<mat-paginator [pageSizeOptions]="[5, 10, 20]" showFirstLastButtons>
</mat-paginator>