Виртуальная прокрутка в PrimeNG расширена, данные не работают - PullRequest
0 голосов
/ 09 декабря 2018

Я использую primeng dataTable с виртуальной прокруткой.если значение параметраableableRows равно true, виртуальная прокрутка не работает.и функция lazyLoad никогда не вызывается, только когда есть расширенная строка.это мой код:

HTML:

   <p-dataTable #dt [virtualScroll]="virtualScroll" [emptyMessage]="'TABLE.EMPTY_MESSAGE'|translate" #dt [rows]="rows" [paginator]="paginator"
        (onLazyLoad)="loadLazy($event)" [pageLinks]="3" [scrollable]="true" loadingIcon="fa-spinner" [editable]="editable"
        [styleClass]="paginator?'paginator': enableFilter?'scroll filter-table':'scroll'" [totalRecords]="virtualScroll?totalRecords:null"
        [globalFilter]="gb" [value]="displayList1" [lazy]="virtualScroll" [loading]="loading" resizableColumns="true" [(selection)]="selectedItem"
        (onRowDblclick)="importButton?'':onRowDblclick($event.data)" [expandableRows]="showExpander" [expandedRows]="expandedRows"
        (onRowSelect)="onrowSelect($event)" (onRowClick)="selectRow($event);onrowSelect($event)" (onRowUnselect)="onRowUnSelect($event)"
        [rowStyleClass]="rowStyleClass" [selectionMode]="(enableSelect&&!showSelectColumn)?(multiSelect?'multiple':'single'):''"
        [metaKeySelection]="false" (onHeaderCheckboxToggle)="onHeaderCheckboxToggle($event)">

Тип сценария:

 loadLazy(event: LazyLoadEvent) {
if (this.dataTable && this.dataTable.el.nativeElement.querySelector(".ui-datatable-scrollable-body")&&this.dataTable.el.nativeElement.querySelector(".ui-datatable-scrollable-body").clientHeight) {
  this.rows = Math.floor(this.dataTable.el.nativeElement.querySelector(".ui-datatable-scrollable-body").clientHeight / this.dataTable.tbody.children[0].clientHeight);}
this.filters = event.filters;
this.loading = true;
setTimeout(() => {
  this.loading = false;
  if (this.displayList) {
    let list = this.displayList.filter(row => this.filterField(row, event.filters));
    this.displayList1 = list.slice(event.first, (event.first + event.rows));
    this.totalRecords = list.length;
  }
}, 250);

}

...