Установите «первый» вариант виртуальной прокрутки - PullRequest
0 голосов
/ 17 января 2019

Есть ли способы вызвать событие "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();
}

Любая помощь будет принята с благодарностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...