簡體   English   中英

如何禁用 PrimeNG 表中選定列的排序?

[英]How to disable sorting for selected columns in PrimeNG table?

我正在嘗試根據 PrimeNG 表中的布爾值禁用對選定列的排序。 下面是我的列數組

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> 

我可以使用上面的代碼來禁用列,即name age禁用列,但我不pSortableColumnDisabled上面那樣硬編碼列名,因為這些列將由父組件動態傳遞。

有沒有辦法根據各自的sort布爾值禁用列?

在互聯網上花費了一段時間后,找到了上述問題的解決方案https://embed.plnkr.co/egBhS1DJhY2Ud1ByfGBp/

將硬編碼條件從

[pSortableColumn]="col.field" [pSortableColumnDisabled]="col.field === 'name' || col.field === 'age'"

[pSortableColumnDisabled]="!col.sort ? true : false"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM