You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PrimeNG的p-table中为表格行动态分配唯一ID

你当前写法失效的原因是id=i属于静态HTML属性赋值,只会把i作为普通字符串渲染到ID上,不会绑定Angular模板上下文里的index变量。

修改方案

使用Angular属性绑定语法,用方括号包裹id属性即可完成动态值绑定:

<ng-template pTemplate="body" let-rowData let-columns="columns" let-i="index">
    <tr [id]="i">
        <td *ngFor="let col of columns">
            {{rowData[col.field]}}
        </td>
    </tr>
</ng-template>

如果需要避免ID和页面其他元素重复,可添加固定前缀拼接:

<tr [id]="'p-table-row-' + i">

补充建议:如果行数据本身带有唯一业务标识(如数据自增ID、业务编号等字段),优先使用业务字段作为ID值。排序、分页、筛选等表格操作会导致行的index动态变动,业务ID的稳定性更强,示例如下:

<tr [id]="'p-table-row-' + rowData.id">

内容的提问来源于stack exchange,提问作者Tony

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 08:06:03