angular - PrimeNg <p-table> 排序

标签 angular primeng primeng-datatable

我正在使用 primeNg <p-table> .我想实现数据排序。下面是我做的

排序.HTML

<p-table [columns]="cols" [value]="documents">
    <ng-template pTemplate="header" let-columns>
        <tr>
            <th *ngFor="let col of columns" [pSortableColumn]="col.field">
                {{col.header}}
                <p-sortIcon [field]="col.field"></p-sortIcon>
            </th>
        </tr>
    </ng-template>
    <ng-template pTemplate="body" let-doc>
        <tr>
            <td>
                {{doc.sName}}
            </td>

        <td>
                {{doc.sYear}}
            </td>
        <td>
                {{doc.sAge}}
            </td>
        <td>
                {{doc.sColor}}
            </td>        
        </tr>
    </ng-template>
</p-table>

排序.ts

this.cols = [
            { field: 'name', header: 'Name' },
            { field: 'year', header: 'Year' },
            { field: 'age', header: 'Age' },
            { field: 'color', header: 'Color' }
        ];

ngOnInit(){
    //made a service call and got data for

this.documents=[{
"sName":"Jhon",
"sYear":"1994",
"sAge":"20",
"sColor":"Red"
},
{
"sName":"Sam",
"sYear":"1996",
"sAge":"25",
"sColor":"Red"
},
{
"sName":"Anna",
"sYear":"1991",
"sAge":"21",
"sColor":"Green"
},
{
"sName":"Jhon",
"sYear":"1999",
"sAge":"25",
"sColor":"Blue"
},
{
"sName":"Betty",
"sYear":"1993",
"sAge":"35",
"sColor":"Red"
}]
}

仅截至目前 Name字段正在排序,如何在其他列中也实现排序?我用了[pSortableColumn]但是列没有得到排序,我错过了某个点。你能指导我哪里错了吗?

PS:我不能用<p-dataTable> .

最佳答案

对于使用固定列的 Turbo 表/p 表进行排序,请尝试以下代码

                <p-table #dt [value]="data">
                <ng-template pTemplate="header">
                    <tr>
                        <th [pSortableColumn]="'Name'">Name
                            <p-sortIcon [field]="'Name'"></p-sortIcon>
                        </th>
                        <th [pSortableColumn]="'Age'">Age
                            <p-sortIcon [field]="'Age'"></p-sortIcon>
                        </th>
                        <th [pSortableColumn]="'Height'">Height
                            <p-sortIcon [field]="'Height'"></p-sortIcon>
                        </th>
                    </tr>
                </ng-template>
                <ng-template pTemplate="body" let-col>
                    <tr>
                        <td>{{col.Name}}</td>
                        <td>{{col.Age}}</td>
                        <td>{{col.Height}}</td>
                    </tr>
                </ng-template>
            </p-table>

关于angular - PrimeNg <p-table> 排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51079619/

相关文章:

angular - 如何(以编程方式)预设 primeng 数据表中的过滤器值

尽管模型发生变化,Angular4 PrimeNG DataTable 仍未更新

angular - 如何使用行分组对 PrimeNG DataTable 中的数据进行排序

html - 粘性标题不适用于 Primeng 中的可调整大小的列。?

javascript - 当使用 rxjs 6 以 Angular 6 发出新请求时如何取消正在进行的 HTTP 请求

javascript - 如何修复 'ERROR TypeError: data.slice is not a function'?

angular - PrimeNG 使用异步管道延迟加载数据

css - 我无法在元素中使用node-bourbon

node.js - 我如何单独运行同一个应用程序

angular - 如何将默认 -(连字符)填充到空单元格