首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >onRowSelect / onRowClick根本没有触发。- Primeng表-角

onRowSelect / onRowClick根本没有触发。- Primeng表-角
EN

Stack Overflow用户
提问于 2019-07-05 13:05:04
回答 2查看 5.2K关注 0票数 1

实际上,我需要遍历到另一个组件,并在单击行时选择数据。我一直在用p-table来执行同样的操作。我完全不知道为什么。onRowClick / onRowSelection根本不被触发,我甚至添加了一个console.log字符串来查看方法是否至少被调用了,但没有,甚至(选择)也没有很好的效果。p-table没有问题,因为分页和全局过滤器实际上运行良好,并且没有问题。但这件事我不知道为什么。Primeng版本"primeng": "^7.1.3"

代码语言:javascript
复制
<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>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-05 13:11:09

可能的替代解决方案:在<tr>标记中添加(click)="handleSelect(rowData)"并删除(onRowClick)处理程序。

理由:

  • 如果(onRowClick)绑定不起作用,则绑定到另一个事件。
  • 您的let-rowData迭代中的rowData包含来自该行的信息,这似乎是传递给其他组件所需的信息。
  • 在过去,这种方法对我来说是成功的,当用户单击一行时,可以使用p-table来捕捉。
票数 2
EN

Stack Overflow用户

发布于 2022-03-10 17:35:01

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

事件不是onRowClick(),而是onRowSelect(),因此您需要说:

代码语言:javascript
复制
    <p-table [columns]="cols" [value]="companiesList"  selectionMode="single"
   (onRowSelect)="handleSelect($event)"

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

代码语言:javascript
复制
<ng-template pTemplate="body" let-rowData let-columns="columns">
   <tr [pSelectableRow]="rowData">
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56903662

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档