Как использовать 2 пагинации для одного стола в таблице угловых материалов?

Я создаю приложение в angular6 с угловым материалом. Как использовать 2 нумерации страниц в одной таблице. Я хочу показать пагинацию в обоих местах верхнего и нижнего колонтитула.

Нумерация заголовков показывает только "Элементы на странице" с выпадающим списком. Пагинация нижнего колонтитула покажет стрелку и все.

Когда я добавляю 2 нумерации страниц, второй не работает.

Пожалуйста, обратитесь скриншоты

Благодарю.

0 ответов

Я не думаю, что на данный момент есть официальное решение для этого, и вы должны синхронизировать оба пагинатора самостоятельно.

Сконфигурируйте первый paginator, как вам нравится, и добавьте все входные параметры ко второму:

<mat-paginator #paginator [pageSizeOptions]="[5, 10, 20]" showFirstLastButtons></mat-paginator>

<table mat-table [dataSource]="dataSource"> <!-- ... --> </table>

<mat-paginator (page)="syncPrimaryPaginator($event)" 
  [pageSize]="paginator.pageSize" [pageIndex]="paginator.pageIndex"
  [length]="paginator.length" [pageSizeOptions]="paginator.pageSizeOptions"></mat-paginator>

В вашем компоненте добавьте метод для синхронизации первого paginator, если используется второй:

dataSource = new MatTableDataSource<PeriodicElement>(ELEMENT_DATA);

@ViewChild(MatPaginator) paginator: MatPaginator;

ngOnInit() {
  this.dataSource.paginator = this.paginator;
}

syncPrimaryPaginator(event: PageEvent) {
  this.paginator.pageIndex = event.pageIndex;
  this.paginator.pageSize = event.pageSize;
  this.paginator.page.emit(event);
}

Я раздвоил этот официальный пример и обновил его, чтобы воспроизвести вашу проблему. Вот мое решение.

Другие вопросы по тегам