Я использую (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 строк. (Здесь число соответствует выбранному размеру).