onRowSelect / onRowClick 根本没有被触发。- Primeng 桌子 - Angular

Gay*_*hri 3 primeng angular primeng-datatable

我实际上需要遍历到另一个组件,其中单击行时选择了数据。我一直在使用 p-table 来执行相同的操作。我完全不知道为什么。onRowClick / onRowSelection 根本不会被触发。我什至添加了一个 console.log 字符串来查看方法是否至少被调用,但事实并非如此。甚至[(选择)]表现也不佳。p-table 没有问题,因为分页和全局过滤器实际上运行良好并且没有任何问题。但这是我无法弄清楚为什么。素萌版"primeng": "^7.1.3"

<p-table [columns]="cols" [value]="companiesList"  selectionMode="single"
   (onRowClick)="handleSelect($event)" 
  >
      <ng-template pTemplate="header" let-columns>
          <tr>
              <th *ngFor="let col of columns" [pSortableColumn]="col.field">
                  {{col.header}}
                  <p-sortIcon [field]="col.field"></p-sortIcon>
              </th>
          </tr>
      </ng-template>
      <ng-template pTemplate="body" let-rowData let-columns="columns">
          <tr>
              <td *ngFor="let col of columns">
                      {{rowData[col.field]}}
              </td>
          </tr>
      </ng-template>
  </p-table>
Run Code Online (Sandbox Code Playgroud)

Cat*_*ine 5

尽管这个问题很久以前就提出了,也许这会对其他人有所帮助。

该事件不是 onRowClick(),而是 onRowSelect() 所以你需要说:

    <p-table [columns]="cols" [value]="companiesList"  selectionMode="single"
   (onRowSelect)="handleSelect($event)"
Run Code Online (Sandbox Code Playgroud)

还有一个 onRowUnselect() 可用。还要确保在行的 html 中指示行是可选的:

<ng-template pTemplate="body" let-rowData let-columns="columns">
   <tr [pSelectableRow]="rowData">
Run Code Online (Sandbox Code Playgroud)