Как получить данные, которые отображаются только на странице материала с пагинацией - PullRequest
0 голосов
/ 11 октября 2018

Мне нужно экспортировать данные, которые в настоящее время отображаются на странице, в Excel или PDF.Итак, как я могу получить данные, которые отображаются только на странице.Я храню все данные в объекте источника данных.Например: - Если элементов на странице 10, мне нужно 10 пунктов.Если я изменю список элементов paginator на 20, мне понадобятся 20 элементов.

Компонент HTML

   <table mat-table [dataSource]="dataSource" class="mat-elevation-z8 mat_datatable" matSort matSortActive="total_click" matSortDirection="desc" multiTemplateDataRows matSortDisableClear>

component.ts

   import {MatPaginator, MatSort, MatTableDataSource} from 
  '@angular/material';

   this.dataSource = new MatTableDataSource(this.reports);
   this.dataSource.paginator = this.paginator;
   this.dataSource.sort = this.sort;    

Это мои файлы компонентов.

1 Ответ

0 голосов
/ 11 октября 2018

Вы можете использовать приведенный ниже код, чтобы пропустить несколько записей и отфильтровать или взять записи текущей страницы:

const skip = this.paginator.pageSize * this.paginator.pageIndex;

const pagedData = this.data.filter((u, i) => i >= skip)
   .filter((u, i) => i <this.paginator.pageSize);

Здесь создана рабочая демонстрация: https://stackblitz.com/edit/angular-n9yojx

...