Угловое 7 и событие страницы материала на paginator отображают только одну новую строку при изменении индекса страницы - PullRequest
0 голосов
/ 07 марта 2019

Я использую (page) событие <mat-paginator>:

<mat-paginator #paginator 
      [pageSizeOptions]="[5, 10, 25, 100, 1000]" 
      [pageSize]="pageSize" [showFirstLastButtons]="true"
      [length]="total" (page)="getData($event)" 
      *ngIf="total>0">
</mat-paginator>

Чтобы изменить данные, отображаемые в <mat-table>.

Когда пользователь изменяет номер страницы с помощью стрелок назад и вперед, происходит событие (page):

getData(e)
{
  //this.oldPageSize = e.pageSize
  //console.log(e.pageIndex+' '+e.pageSize )
  this.getKits('defined', e.pageIndex, e.pageSize);
}

getKits() перейдет на сервер и будет выполнен следующий скрипт:

$sql = 'SELECT (SELECT count(*) FROM kit) as total, kit_id as id, kit_name as name,
    type_of_kit as ktype, received_quantity as quantity, kit_status as kstatus, date_added as da
    FROM kit
    ORDER BY system_date DESC 
    LIMIT :p, :s
    ';

$exec = $conn->prepare($sql);
$exec->bindValue(':p', $page, PDO::PARAM_INT);
$exec->bindValue(':s', $size, PDO::PARAM_INT);
$exec->execute();
$res = $exec->fetchAll();

При загрузке компонентов pageIndex и pageSize равны 0 и 5. И когда getData(e) будет запущен, они будут изменены.

Проблема в том, что когда загружаются первые исходные данные (5 строк), и когда я перехожу на следующую страницу paginator, это будет getKits('defined', 1, 6), и только одна новая строка отображается внизу, а одна старая строка удалена из него.

Мне нужно показать следующие 5 строк. Может быть, следующие 10 строк. (Здесь число соответствует выбранному размеру).

...