我有一张PrimeNG表,一切正常。我已经实现了排序。
我得到的是表中每个列的排序选项,但我只希望在特定列中使用此选项。
有什么建议吗?
预先感谢
||威利..
<p-table [columns]="wikiCols" [value]="wikiItems" selectionMode="single" [(selection)]="selectedItem">
<ng-template pTemplate="header">
<tr>
<th *ngFor="let col of wikiCols" [pSortableColumn]="col.field" >
{{col.header}}
<p-sortIcon [field]="col.field" ariaLabel="Activate to sort" ariaLabelDesc="Activate to sort in descending order" ariaLabelAsc="Activate to sort in ascending order"></p-sortIcon>
</th>
</tr>
</ng-template>
<ng-template pTemplate="body" let-rowData let-columns="columns">
<tr [pSelectableRow]="rowData">
<td *ngFor="let col of wikiCols">
{{rowData[col.field]}}
</td>
</tr>
</ng-template>
</p-table>
答案 0 :(得分:5)
从文档中
通过添加pSortableColumn指令(可将其值作为要对其进行排序的字段)和通过p-sortIcon组件的排序指示符,可以使列可排序。对于动态列,将pSortableColumnDisabled属性设置为true将禁用该特定列的排序。
https://www.primefaces.org/primeng/#/table
因此,我认为您想要的是检查col.field
是否为您要排序的列。像
[pSortableColumnDisabled]="col.field === 'whatever'"
也如Aman Chhabra所述,将* ngIf放在p-sortIcon
<p-sortIcon *ngIf="col.field !== 'whatever'" [field]="col.field" ariaLabel="Activate to sort" ariaLabelDesc="Activate to sort in descending order" ariaLabelAsc="Activate to sort in ascending order"></p-sortIcon>