p-tableheadercheckbox
компонент имеет одну логику c, чтобы установить все строки на selectedRows
, тогда это означает, что все элементы выбраны, вы можете проверить это логи c здесь
Вы можете использовать p-checkbox
a bind selectRow
, чтобы щелкнуть по событию, который будет выполнять желаемую работу
компонент
selectRow(checkValue) {
if (checkValue) {
this.selectedRows = this.cars.filter(value => value.year < 2000);
} else {
this.selectedRows = [];
}
}
шаблон
<p-table [value]="cars" [columns]="cols" [(selection)]="selectedRows">
<ng-template pTemplate="header" let-columns>
<tr>
<th>
<p-checkbox (click)="selectRow(e.checked)" #e></p-checkbox>
</th>
<th *ngFor="let col of columns">
{{col.header}}
</th>
</tr>
</ng-template>
<ng-template pTemplate="body" let-rowData let-columns="columns">
<tr [pSelectableRow]="rowData">
<td>
<p-tableCheckbox [value]="rowData" [disabled]="rowData.year > 2000">
</p-tableCheckbox>
</td>
<td *ngFor="let col of columns">
{{rowData[col.field]}}
</td>
</tr>
</ng-template>
</p-table>
демо ??