【发布时间】:2017-09-19 05:31:13
【问题描述】:
我正在尝试使用primeng <p-datatable> 为大量数据实现延迟加载。我已经完成了官方网站上记录的所有内容,但是我无法使其正常工作。
onLazyLoad 回调仅在加载表时运行一次。它不会按预期在每次滚动时触发。
<div style="max-height:300px; border:1px solid black;overflow-y:auto">
<p-dataTable #pocListref [value]="data" rowHover="true" [(selection)] = "selectedData" scrollable="true" scrollHeight="200px" [rows]="4"
[style]="{'margin-top':'30px'}" [paginator]="true" [rowsPerPageOptions]="[5,10,20]"
[lazy]="true" [totalRecords]="totalRecords" (onLazyLoad)="lazyLoad($event)">
<p-column header="Id">
<ng-template pTemplate="body" let-index="rowIndex">
{{index}}
</ng-template>
</p-column>
<p-column selectionMode="multiple" [style]="{'width':'5%'}"></p-column>
<p-column field="name" header="Name"[sortable]="true"></p-column>
<p-column field="age" header="Age" [sortable]="true"></p-column>
<p-column field="company" header="Company" [sortable]="true"></p-column>
</p-dataTable>
</div>
分页器实现同样适用。我注意到只有当我不使用 virtualScroll 属性时它才适用于分页器,这是有道理的,但不知何故 virtualScroll 对滚动没有任何影响。
我知道已经有一个类似的question,但它仍然得到了答复。
有人通过延迟加载成功使用了虚拟滚动。任何建议都会很有用。
【问题讨论】:
-
这个问题你解决了吗?
-
表格滚动一定量后似乎没有触发(onLazyLoad)。我想不出确切的模式。有什么想法吗?
标签: angular lazy-loading primeng primeng-datatable