PrimeNg Turbo Table p-таблица событий отложенной загрузки - PullRequest
0 голосов
/ 11 мая 2018

Я внедряю турбо стол PrimeNG. Я могу реализовать это, но при реализации отложенной загрузки. Я не смог получить событие прокрутки. Как получить событие прокрутки в моем методе. Ниже я попробовал.

<p-table #dt 
          dataKey="id"
          [columns]="columns" 
          [value]="gridData" 
          [scrollable]="true" 
          sortMode="single"
          scrollHeight="500px" 
          *ngIf="isDataLoading" 
          (onLazyLoad)="loadDataOnScroll($event)" 
          [lazy]="true" 
          [rows]="25" 
          [totalRecords]="recordTotal"
          [(selection)]="selectedRows" 
          (onRowSelect)="onRowSelect($event)" 
          (onRowUnselect)="onRowUnselect($event)" 
          (onHeaderCheckboxToggle)="onHeaderCheckboxToggle($event)"
          selectionMode="multiple"
          [virtualScroll]="true" >

</p-table>

метод для получения события lazyload.

loadDataOnScroll1(event: LazyLoadEvent) {

          let firstTime: boolean;
          let onScroll: boolean;
          let onSort: boolean;
          let globalSearch: boolean;

          console.log(event);
          if (event.globalFilter == null && !event.filters.hasOwnProperty('global') &&
               event.hasOwnProperty('sortField') && event.sortField == undefined) {
               firstTime = true;
               console.log('user iscoming for the first time ');
          } else if (event.globalFilter != null && event.globalFilter.length > 0 && event.filters.hasOwnProperty('global') &&
               !event.hasOwnProperty('sortField')) {
               globalSearch = true;
               console.log('user is doing only global search');
          } else if (event.hasOwnProperty('sortField') && event.sortField != undefined && event.globalFilter == null && !event.filters.hasOwnProperty('global')) {
               onSort = true;
               console.log('user is doing sorting');
          } else if (event.hasOwnProperty('sortField') && event.globalFilter != null && event.filters.hasOwnProperty('global')) {
               globalSearch = true;
               onSort = true;
               console.log('user is doing global search along with sort');
          } else {
               console.log('user is doing onscroll so do increment for page number');
               // here we need to take entire event and get all possible values to call
               // get api and update grid data
               // 
          }

     }

Я могу получить сортировку, фильтр, событие глобального поиска, но не могу получить событие прокрутки. Я хочу получить событие и позвонить в мою службу для получения разбитых на страницы данных.

Спасибо.

1 Ответ

0 голосов
/ 27 июля 2018

я исправил эту проблему с помощью трюка.я устанавливаю totalRecords как большое число или число, которое намного больше, чем ваши текущие данные (например, длина текущих данных равна 500, установите totalRecords равным 1000), тогда отложенная загрузка будет запускаться при каждой прокрутке

...