<p-column header="Actions" selectionMode="multiple" [style]="{'width':'40px'}" ></p-column>
我在上面添加了导致启动数据表中的多选模式的行。但我想禁用某些复选框取决于条件。如何处理?我尝试使用 [rowstyleclass] 进行相同的操作,但它存在性能问题,因为每次我将鼠标悬停在特定行上时都会调用它。有什么解决办法吗?
<p-column header="Actions" selectionMode="multiple" [style]="{'width':'40px'}" ></p-column>
我在上面添加了导致启动数据表中的多选模式的行。但我想禁用某些复选框取决于条件。如何处理?我尝试使用 [rowstyleclass] 进行相同的操作,但它存在性能问题,因为每次我将鼠标悬停在特定行上时都会调用它。有什么解决办法吗?
您可以使用列模板来实现这一点。这是示例代码。
这里所有偶数行都被逻辑禁用 - [disabled]="item.Id%2 == 0" ,您可以将所需的逻辑放在适当的位置。
你的.component.html
<p-dataTable #dt [value]="persons">
<p-column field="" header="Select" [style]="{'width':'60px', 'align-items':'center'}">
<ng-template let-col let-item="rowData" pTemplate="body">
<p-checkbox [disabled]="item.Id%2 == 0"
[style]="{'align':'center'}"
name="persongroup"
[value]="item"
[(ngModel)]="selectedPersons">
</p-checkbox>
</ng-template>
</p-column>
<p-column field="Id" header="Id"></p-column>
<p-column field="Name" header="Name"></p-column>
</p-datatable>
你的.component.ts
persons : Person[] = [
{'Id' : 1, 'Name' : 'person1'},
{'Id' : 2, 'Name' : 'person2'}
];
selectedPersons : Person[]=[];
您可以使用模板来实现这一点。只需根据您在模板中的条件禁用复选框,就可以了。