<p-column header="Actions" selectionMode="multiple" [style]="{'width':'40px'}" ></p-column>
我添加了上面的行,这会在我的启动数据表中导致多选模式。但我想根据条件禁用某些复选框。 怎么办呢? 我尝试使用[rowstyleclass],但它有性能问题,因为它被称为evereytime我将鼠标悬停在特定行上。 任何解决方案?
答案 0 :(得分:2)
您可以使用templating来实现这一目标。只需根据模板中的条件禁用复选框,您就应该好好去。
答案 1 :(得分:2)
您可以使用列模板来实现此目的。这是示例代码。
这里所有偶数行都被逻辑禁用 - [禁用] =&#34; item.Id%2 == 0&#34; ,您可以将所需的逻辑放在适当的位置。
your.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>
your.component.ts
persons : Person[] = [
{'Id' : 1, 'Name' : 'person1'},
{'Id' : 2, 'Name' : 'person2'}
];
selectedPersons : Person[]=[];