typescript - 在Angular中搜索时如何转到表格的第一页?
问题描述
这是一个 Angular 8 应用程序。它有一张带垫子分页器的桌子。
<mat-paginator [pageSize]="commonPageSize" [length]="totalElements"
(page)="getData($event.pageIndex, this.isSearch, this.key, this.value)" showFirstLastButtons></mat-paginator>
我从每次下一页点击的 API 调用中获取数据
(page)="getData($event.pageIndex, this.isSearch, this.key, this.value)"
pageSize 始终为 10,每个 API 调用我检索 10 行。下面是我的 ts 文件。
getData(pageNumber: number, isSearch: string, key: string, value: string) {
if (this.subscription) {
this.subscription.unsubscribe();
}
this.subscription = this.service.getData(pageNumber.toString(), this.commonPageSize,
isSearch, key, value)
.subscribe(
data => {
if(data.length !== 0) {
this.isDownloadCsvBtnEnable = false;
}
if(this.totalElements == null && data.length > 0) {
this.totalElements = parseInt(data[0].totalElements,10 );
}
this.data= new MatTableDataSource(data);
this.number = this.data.connect().pipe(map((data: any) => data.length === 0));
this.data.sort = this.sort;
}
);
}
问题是假设我在第 3 页并传递值进行搜索。然后表格不会转到第一页。搜索到的数据已加载到第 3 页的表中。它没有导航到第一页。任何人都可以告诉我如何重定向到第一页。
谢谢
解决方案
在 Angular Material 文档中有一个如何做到这一点的例子。
https://stackblitz.com/angular/gxxgljxnpbb?file=src%2Fapp%2Ftable-overview-example.ts
基本上,您需要使用 ViewChild 来获取对组件中分页器的引用。然后,每当更改过滤器时,您都可以告诉分页器转到第一页。
推荐阅读
- python - 计算连续行之间的秒数差异为第一行返回 NaN
- excel - 根据 Excel 中的另一个单元格值验证单元格
- javascript - 如何调用主应用程序文件的函数?反应原生
- java - 如何使用视频视图和意图播放视频
- node.js - Docker 在 docker-compose up 上同时运行 Yarn update 和 npm update
- firebase - 客户的 GCP 结算帐号
- go - 测试用例中的 Golang 数据竞争条件
- android - 从 Android Sudio 3.2.1 切换到 4.1.2 后的 java.lang.UnsatisfiedLinkError
- memory-management - cudaMalloc 增加主机内存成本?
- python - 如何使用 Python 添加指向文件的超链接?