如何将ngx-datatable分页器从页脚移至表头或添加至表头?
可行,两种实现方案如下
方案1:将分页器移至表头(隐藏页脚分页)
利用ngx-datatable的自定义表头模板,嵌入官方的ngx-datatable-pager组件,同时隐藏原页脚的分页区域:
<ngx-datatable class="material" [rows]="rows" [count]="count" [limit]="limit" [offset]="offset" (page)="setPage($event)"> <!-- 自定义表头,包含分页器和列标题 --> <ng-template ngx-datatable-header-template> <div class="custom-header"> <!-- 嵌入同款分页器 --> <ngx-datatable-pager [pagerLeftArrowIcon]="'datatable-icon-left'" [pagerRightArrowIcon]="'datatable-icon-right'" [pagerPreviousIcon]="'datatable-icon-prev'" [pagerNextIcon]="'datatable-icon-next'" [count]="count" [limit]="limit" [offset]="offset" (page)="setPage($event)"> </ngx-datatable-pager> <!-- 保留默认列标题 --> <datatable-header> <datatable-header-cell *ngFor="let column of columns"> {{ column.name }} </datatable-header-cell> </datatable-header> </div> </ng-template> <!-- 列定义 --> <ngx-datatable-column *ngFor="let column of columns" [name]="column.name"> <ng-template ngx-datatable-cell-template let-row="row" let-value="value"> {{ value }} </ng-template> </ngx-datatable-column> <!-- 隐藏原页脚分页 --> <ngx-datatable-footer [footerHeight]="0"></ngx-datatable-footer> </ngx-datatable>
添加CSS调整布局,让分页器和页脚样式对齐:
.custom-header { display: flex; flex-direction: column; gap: 10px; } .custom-header ngx-datatable-pager { display: flex; justify-content: flex-end; padding: 8px 16px; border-bottom: 1px solid #e0e0e0; }
方案2:表头和页脚同时显示分页器
只需保留原页脚的分页器,同时在表头模板中嵌入同款组件即可,两个分页器绑定相同的属性和事件,操作会自动同步:
只需去掉上述代码中的<ngx-datatable-footer [footerHeight]="0"></ngx-datatable-footer>部分,其余代码不变。
核心逻辑说明
- 直接复用官方的
ngx-datatable-pager组件,保证功能、样式和原页脚分页器完全一致 - 绑定相同的
count、limit、offset属性和page事件,确保分页状态同步 - 通过自定义表头模板实现布局调整,无需修改组件核心逻辑
内容的提问来源于stack exchange,提问作者AkiZukiLenn
相关产品推荐
相关产品推荐

