0
<p-column header="Actions" selectionMode="multiple" [style]="{'width':'40px'}" ></p-column>

我在上面添加了导致启动数据表中的多选模式的行。但我想禁用某些复选框取决于条件。如何处理?我尝试使用 [rowstyleclass] 进行相同的操作,但它存在性能问题,因为每次我将鼠标悬停在特定行上时都会调用它。有什么解决办法吗?

4

2 回答 2

2

您可以使用列模板来实现这一点。这是示例代码。

这里所有偶数行都被逻辑禁用 - [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[]=[];
于 2017-06-30T10:13:26.743 回答
2

您可以使用模板来实现这一点。只需根据您在模板中的条件禁用复选框,就可以了。

于 2017-06-29T06:49:13.803 回答