如何在全球搜索Primeng表Angular中搜索管道数据?

发布于 2025-01-22 15:47:11 字数 1675 浏览 4 评论 0原文

我们有一个表,我已经将一列管道,但是当我搜索时,它搜索实际数据,表中未显示的管道数据。 全局搜索:

 <p-table [globalFilterFields]="['value']"  [responsive]="true" responsiveLayout="stack"  (onFilter)="handleFilter($event)"  styleClass="p-datatable-gridlines"  editMode="row"  #dt  [exportHeader]="'customExportHeader'"  [(selection)]="selectedProducts"   rowGroupMode="rowspan" groupRowsBy="dateOfRelease" sortField="dateOfRelease"   dataKey="ldId"  [columns]="cols"    [showCurrentPageReport]="true"  sortMode="multiple" [value]="formatData"   (sortFunction)="customSort($event)"
        [rows]="10" [paginator]="true" (selectionChange)="onSelectionChange($event)"   [loading]="loading" >

//全局搜索代码:

<input pInputText type="text"   (input)="dt.filterGlobal($any($event.target).value,'contains')" (onChange)="onwireVersionChange($event)"  placeholder="Global Search" />
    
//Custom Method for global filter:
   

 public prepareFilters(): void {
            this.wireVersionFilters=[];
            this.formatData.forEach((filtered)=>{
              console.log("Filtered",filtered)
              const wireVersionFilter: DataFilter = {value:filtered.value, label:new WireVersionPipe().transform(filtered.value)};
              this.wireVersionFilters.findIndex(current => current.value === wireVersionFilter.value) === -1 ? this.wireVersionFilters.push(wireVersionFilter) : null;
        
            })
          }
      
      public onwireVersionChange(event:any) {
        const selectedValues = event.value.map((datatableFilter:any) => datatableFilter.value);
        this.table.filter(selectedValues, 'wireVersion', 'in');
      }

We have a table and I already pipe one column.But when I search,it search actual data,piped data not show in table.
Global Search:

 <p-table [globalFilterFields]="['value']"  [responsive]="true" responsiveLayout="stack"  (onFilter)="handleFilter($event)"  styleClass="p-datatable-gridlines"  editMode="row"  #dt  [exportHeader]="'customExportHeader'"  [(selection)]="selectedProducts"   rowGroupMode="rowspan" groupRowsBy="dateOfRelease" sortField="dateOfRelease"   dataKey="ldId"  [columns]="cols"    [showCurrentPageReport]="true"  sortMode="multiple" [value]="formatData"   (sortFunction)="customSort($event)"
        [rows]="10" [paginator]="true" (selectionChange)="onSelectionChange($event)"   [loading]="loading" >

//Global Search Code:

<input pInputText type="text"   (input)="dt.filterGlobal($any($event.target).value,'contains')" (onChange)="onwireVersionChange($event)"  placeholder="Global Search" />
    
//Custom Method for global filter:
   

 public prepareFilters(): void {
            this.wireVersionFilters=[];
            this.formatData.forEach((filtered)=>{
              console.log("Filtered",filtered)
              const wireVersionFilter: DataFilter = {value:filtered.value, label:new WireVersionPipe().transform(filtered.value)};
              this.wireVersionFilters.findIndex(current => current.value === wireVersionFilter.value) === -1 ? this.wireVersionFilters.push(wireVersionFilter) : null;
        
            })
          }
      
      public onwireVersionChange(event:any) {
        const selectedValues = event.value.map((datatableFilter:any) => datatableFilter.value);
        this.table.filter(selectedValues, 'wireVersion', 'in');
      }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

执妄 2025-01-29 15:47:11

我将此演示放在stackblitz上,以处理我遇到的相同问题。您需要有一个自定义过滤器选项来处理对原始数据的搜索,该数据将以您对显示器进行过滤以找到匹配项。

实际上,实际上是,在搜索以纠正搜索数据以查找数据时,您将一直在全局搜索上处理数据。

I put this demo together on Stackblitz to handle the same issue I was having. You need to have a custom filter option to handle searching on the original data that will filter it the way you did to the display in order to find the matches.

The difference actually would be that you would need to on the global searching handle the data all the time when searching to correct the data on search to find it.

StackBlitz Demo

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文