1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > angular2项目里使用ng-zorro的分页组件(不是表格自带的那种)

angular2项目里使用ng-zorro的分页组件(不是表格自带的那种)

时间:2019-08-12 08:35:06

相关推荐

angular2项目里使用ng-zorro的分页组件(不是表格自带的那种)

前提:

我使用的是angular-cil做的项目

组件库用的是ng-zorro

使用表格样式,却不使用表格自带的分页,而是去使用单独的分页组件

实现的效果是:

显示总条数、可跳转到其他页(两个按钮同样有效)、可改变每页条数

具体步骤如下:

1、使表格的分页隐藏,避免重复

(我用的使表格,你们可以使用其他的,这一步可省略)

主要是:[nzShowPagination]='false'

<nz-table #borderedTable nzBordered [nzShowPagination]='false' [nzData]="[{}]" >……</nz-table>

2、使用分页组件

使用ng-zorro里的这个组件模板

html里:

<!-- nzPageIndex:当前展示的是第几页(数据绑定)nzShowTotal:显示总条数的模板(用于显示数据总量和当前数据范围)nzTotal:共多少条数据 (数据绑定)nzPageSize:每页几条数据,可双向绑定nzShowSizeChanger是否可以改变 nzPageSize 默认是false。有了这个,可以改变每页显示条数(10、20……)nzPageSizeOptions:指定每页可以显示多少条10,20,30……(不用写,有默认值,测试时可以写)(nzPageSizeChange): 每页条数改变的回调(nzPageIndexChange):页码改变的回调--><nz-pagination [nzShowTotal]="totalTemplate" [nzPageIndex]="page" [nzTotal]=total nzShowSizeChanger (nzPageSizeChange)="nzPageSizeChange($event)" (nzPageIndexChange)="nzPageIndexChange($event)"></nz-pagination><ng-template #totalTemplate let-total> 共 {{ total }} 条 </ng-template>

ts文件:

export class XiayigeComponent implements OnInit {// 数据总条数(没有设置初始值的话,分页不显示)public total: any = 1;// 当前页public page: any = 1;// 每页行数public MaxResultCount: any = 10;// 跳转数量 skipCount=page*MaxResultCount 等于跳转页数*每页几条(这个是请求数据时要用的)public SkipCount: any = 0;// 生命周期函数ngOnInit(): void {// 调用请求表格数据的函数this.getSource();}// 请求表格数据的接口函数// 有token验证就加,没有就去掉headers,params是请求接口时要传递的参数getSource() {this.http.get<string> ( apiUrl + '/ProjectRepair/GetContractCompanys', {headers: {Authorization: 'Bearer ' + this.token,},params: {MaxResultCount: this.MaxResultCount,SkipCount: this.SkipCount,}}).subscribe((res: any) => {this.source = res.result.items;console.log(this.source);this.total = res.result.totalCount;});}// 每页条数发生改变时的回调nzPageSizeChange(newSise) {this.MaxResultCount = newSise;this.getSource();}// 跳转到其他页时的回调nzPageIndexChange(size) {// console.log(size);this.page = size;// 这里必须减1this.SkipCount = (size - 1) * this.MaxResultCount;this.getSource();}}

注意:(nzPageIndexChange)在这个函数里,调用获取数据接口时,可能会自动调用两次,解决办法,加个定时器:

// 页码改变的回调// tslint:disable-next-line:typedefnzPageIndexChangeFast(current: number) {this.currentFast = current;// 点击时,current就输出一次,但是加上方法调用,整体就会调用两次,为什么// 解决: 加个定时器就好了const Timeout = setTimeout(() => {this.GetProinfoSpeciesfast();clearTimeout(Timeout);}, 100);}// 每页条数改变的回调// tslint:disable-next-line:typedefnzPageSizeChangeFast(MaxResultCount: number) {this.MaxResultCountFast = MaxResultCount;this.GetProinfoSpeciesfast();}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。