如何禁用 PrimeNG table 中选定列的排序?
How to disable sorting for selected columns in PrimeNG table?
我正在尝试禁用根据 PrimeNG 中的布尔值对选定列进行排序 table。
下面是我的列数组
cols = [
{ field: 'name', header: 'Name', sort: true },
{ field: 'age', header: 'Age', sort: true },
{ field: 'gender', header: 'Gender', sort: false },
{ field: 'status', header: 'Status', sort: false }
];
某些列的 sort
值为 false
,我需要禁用这些列的排序。
<p-table [columns]="cols" [value]="persons" [resizableColumns]="true" sortField="name" sortMode="single">
<ng-template pTemplate="header" let-columns>
<tr>
<th pResizableColumn *ngFor="let col of columns" [pSortableColumn]="col.field" [pSortableColumnDisabled]="col.field === 'name' || col.field === 'age'">
<div class="tb-heading">{{col.header}}</div>
<div class="sort-icons-container">
</div>
</th>
</tr>
</ng-template>
<ng-template pTemplate="body" let-rowData let-columns="columns">
<tr [pSelectableRow]="rowData">
<td *ngFor="let col of columns">
{{rowData[col.field]}}
</td>
</tr>
</ng-template>
</p-table>
我可以使用上面的代码通过使用 pSortableColumnDisabled
来禁用列,即 name
和 age
,但我不想像上面那样对列名称进行硬编码,因为这些列将由父组件动态传递。
是否有任何方法可以根据各自的 sort
布尔值禁用列?
在网上花了一些时间后找到了上述问题的解决方案https://embed.plnkr.co/egBhS1DJhY2Ud1ByfGBp/
更改了硬编码条件
[pSortableColumn]="col.field" [pSortableColumnDisabled]="col.field === 'name' || col.field === 'age'"
至
[pSortableColumnDisabled]="!col.sort ? true : false"
我正在尝试禁用根据 PrimeNG 中的布尔值对选定列进行排序 table。 下面是我的列数组
cols = [
{ field: 'name', header: 'Name', sort: true },
{ field: 'age', header: 'Age', sort: true },
{ field: 'gender', header: 'Gender', sort: false },
{ field: 'status', header: 'Status', sort: false }
];
某些列的 sort
值为 false
,我需要禁用这些列的排序。
<p-table [columns]="cols" [value]="persons" [resizableColumns]="true" sortField="name" sortMode="single">
<ng-template pTemplate="header" let-columns>
<tr>
<th pResizableColumn *ngFor="let col of columns" [pSortableColumn]="col.field" [pSortableColumnDisabled]="col.field === 'name' || col.field === 'age'">
<div class="tb-heading">{{col.header}}</div>
<div class="sort-icons-container">
</div>
</th>
</tr>
</ng-template>
<ng-template pTemplate="body" let-rowData let-columns="columns">
<tr [pSelectableRow]="rowData">
<td *ngFor="let col of columns">
{{rowData[col.field]}}
</td>
</tr>
</ng-template>
</p-table>
我可以使用上面的代码通过使用 pSortableColumnDisabled
来禁用列,即 name
和 age
,但我不想像上面那样对列名称进行硬编码,因为这些列将由父组件动态传递。
是否有任何方法可以根据各自的 sort
布尔值禁用列?
在网上花了一些时间后找到了上述问题的解决方案https://embed.plnkr.co/egBhS1DJhY2Ud1ByfGBp/
更改了硬编码条件
[pSortableColumn]="col.field" [pSortableColumnDisabled]="col.field === 'name' || col.field === 'age'"
至
[pSortableColumnDisabled]="!col.sort ? true : false"