angular - 使用管道角度搜索整个表格
问题描述
如何从分页的整个表中搜索值。目前,如果第 1 页被选中,我只会从第 1 页获取搜索值。我需要的是从整个表中搜索值,无论选择哪个页面。
这是我的代码
<input [(ngModel)]="searchText" placeholder="Search..">
<table class="table table-striped table-hover" [mfData]="pendingReports" #mf="mfDataTable" [mfRowsOnPage]="10" >
<thead>
<tr>
</tr>
</thead>
<tbody>
<tr *ngFor="let data of mf.data | grdFilter: { ireportid: searchText,Property:searchText}">
</tr>
</tbody>
<mfBootstrapPaginator [rowsOnPageSet]="[5,10,25]"></mfBootstrapPaginator>
过滤管:
export class GrdFilterPipe implements PipeTransform {
transform(items: any, filter: any, defaultFilter: boolean): any {
if (!filter){
return items;
}
if (!Array.isArray(items)){
return items;
}
if (filter && Array.isArray(items)) {
let filterKeys = Object.keys(filter);
if (defaultFilter) {
return items.filter(item =>
filterKeys.reduce((x, keyName) =>
(x && new RegExp(filter[keyName], 'gi').test(item[keyName])) || filter[keyName] == "", true));
}
else {
return items.filter(item => {
return filterKeys.some((keyName) => {
return new RegExp(filter[keyName], 'gi').test(item[keyName]) || filter[keyName] == "";
});
});
}
}
}
}
解决方案
您尝试做的事情很可能是不可能的,因为如果您使用分页,这意味着您的 UI 仅包含您要过滤的数据的一部分。因此只能为您提供部分结果。
你需要在你的服务器上实现一个过滤器功能来实现你想要的,因为你的服务器有一个数据的“全局”视图。
推荐阅读
- swift - 在每个表格视图单元格的标签上打印 indexpath 行
- go - 如何在 Golang 中使用位打包将结构编码为二进制
- sql - postgresql 按最大字符串长度聚合
- json - System.Text.Json 问题使.net core 3.1 大摇大摆
- python - python-sphinx 自动摘要目录
- reactjs - 渲染方法中的反应无法读取 this.props.location.state”
- wordpress - Wordpress Http -> Https 砖块网站
- javascript - 如何从 .InnerHTML 获取文本以在更改时淡入和淡出
- python - 增加 np.array 的大小
- c - 为什么 sum 的值会发生变化