Есть ли способы вызвать событие "onLazyLoad" в коде компонента или установить / связать свойство LazyLoadEvent.first с начальным состоянием?
Это может быть полезно в случае, если вам нужно прокрутить вниз до выбранной строки. В моем случае у меня есть следующий URL:
http://localhost:4200/tasks/6800
И я хочу прокрутить до элемента с id = 6800 (из URL). Я могу найти номер строки на сервере и повторно загрузить данные таблицы, но LazyLoadEvent не знает об этом.
Мой компонент таблицы:
<p-table #tasksTable selectionMode="single"
scrollHeight="48vh"
responsive="true"
[rows]="20"
[virtualScroll]="true"
(onLazyLoad)="loadDataOnScroll($event)"
[lazy]="true"
[totalRecords]="totalTasks"
[loading]="loading"
[columns]="cols"
[resizableColumns]="true"
[value]="tasks"
[(selection)]="selectedTask"
(onRowSelect)="onRowSelect()"
(onRowUnselect)="onRowUnselect()"
[scrollable]="true">
<ng-template pTemplate="colgroup" let-columns>
...
</ng-template>
<ng-template pTemplate="header" let-columns>
...
</ng-template>
<ng-template pTemplate="body" let-task>
...
</ng-template>
</p-table>
реализация loadDataOnScroll:
loadDataOnScroll(event: LazyLoadEvent): void {
if (event.first + event.rows > this.totalTasks) {
return;
}
this.take = event.rows;
this.skip = event.first;
this.loadData();
}
Любая помощь будет принята с благодарностью.