首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PrimeNg Turbo Table p-table惰性加载滚动事件

PrimeNg Turbo Table p-table惰性加载滚动事件
EN

Stack Overflow用户
提问于 2018-05-11 19:28:44
回答 1查看 5.7K关注 0票数 2

我正在实现primeNG turbo表。我可以在实现延迟加载的同时实现它。我无法获取滚动事件。如何在我的方法中获取滚动事件。下面是我尝试过的内容。

代码语言:javascript
复制
<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事件。

代码语言:javascript
复制
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
               // 
          }

     }

我可以获取排序、筛选、全局搜索事件,但不能获取滚动事件。我想获取事件并调用我的服务来获取分页数据。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-07-27 10:56:46

我用一个小技巧解决了这个问题。我将totalRecords设置为一个较大的数字或一个比您当前数据大得多的数字(例如,当前数据的长度为500,将totalRecords设置为1000),则在每次滚动时都会触发延迟加载

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50291361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档