您需要做的是click
在图像上设置一个事件,该事件将切换关联行的属性。我们称它为属性isSelected
。
您的图像列的 HTML 代码变为
<p-column field="isSelected" header="" [style]="{'width':'32px','cursor': 'pointer'}">
<ng-template pTemplate="body" let-rowData="rowData">
<img src="https://image.flaticon.com/icons/svg/106/106705.svg" (click)="rowData.isSelected=!rowData.isSelected"/>
</ng-template>
</p-column>
然后将rowStyleClass
PrimeNG 属性添加到您p-dataTable
将调用一个函数的函数中,让我们为其命名isRowSelected
<p-dataTable [value]="cars" [rowStyleClass]="isRowSelected">
该isRowSelected
函数将返回一个类名,具体取决于您选择或取消选择该行
isRowSelected(rowData: any) {
return (rowData.isSelected) ? "rowSelected" : "rowUnselected";
}
最后,创建这两个 CSS 类:rowSelected
和rowUnselected
tr.rowUnselected > td {
color: black;
background-color: white !important;
}
tr.rowSelected > td {
color: black;
background-color: #dff0d8 !important;
}
这是一个工作的Plunker