0

初始用户界面(无过滤器):

[globalFilterFields]="['name','marketingName','m_id']"

初始用户界面

问题:在第一列中找到匹配项后跳过其他列字段

在这里,我们正在搜索第一列和第二列中存在的“模型”。但是,它没有考虑第二列。

在此处输入图像描述

期望:应显示前 3 行,即 Database、Dataset1、Model

Stackblitzhttps ://stackblitz.com/edit/primeng-treetablefilter-demo-efg4b5?file=src/assets/filesystem.json

请展开模块,然后在全局搜索中使用“模型”进行搜索。

我们有搜索框来使用全局过滤器过滤 p-treeTable 的行,如下所示:

<input #searchBox type="text" [(ngModel)]="searchText" pInputText class="searchBox"
          placeholder="Search"
          (input)="tt.filterGlobal($event.target.value, 'contains')" />

映射到 TreeTable 的列定义如下所示:

this.columns = [
      { field: "name", header: "Name", width: '38%' },
      { field: "marketingName", header: "marketingName", width: '19%' },
      { field: "m_id", header: "M ID", width: '16%' },
      { field: "operation", header: "Operation", width: '7%' }
    ];

树表代码:

<p-treeTable #tt [value]="businessUnit" [columns]="columns" selectionMode="single"
          [(selection)]="selectedTreeProgram" dataKey="name" (onNodeSelect)="onNodeSelect(true)"
          (onNodeUnselect)="onNodeSelect(false)" [globalFilterFields]="['name','marketingName','m_id']">
          <ng-template pTemplate="colgroup" let-columns>
            <colgroup>
              <col *ngFor="let col of columns" [style.width]="col.width">
            </colgroup>
          </ng-template>
          <ng-template pTemplate="header" let-columns>
            <tr>
              <th *ngFor="let col of columns" style="display: none">
                {{col.header}}
              </th>
            </tr>
          </ng-template>
          <ng-template pTemplate="body" let-rowNode let-rowData="rowData" let-columns="columns">
            <tr class="bu-row" [id]="utils.getId(rowData['name'])">
              <td *ngIf="!rowData['m_id']"> 
                  <div class="combine name">{{rowData['name']}}</div>
              </td>
              <td>
                //Dummy
              </td>
              <td>
                //Dummy
              </td>
              <td>
                //Dummy
              </td>
            </tr>
            <tr *ngIf="rowData['m_id']" [ttRow]="rowNode" [ttSelectableRow]="rowNode" class="tree-child-row">
              <td>
                   //Icons
                  <div class="combine name">{{rowData['name']}}</div>
              </td>
              <td>
                <div class="combine">{{rowData['marketingName']}}</div>
              </td>
              <td>
                <div class="combine">{{rowData['m_id']}}</div>
              </td>
              <td>
                    //Edit Delete Icon
              </td>
            </tr>
          </ng-template>
        </p-treeTable>
4

0 回答 0