PrimeNg <ptable>在页面加载时排序的列

时间:2018-06-28 16:20:34

标签: angular primeng primeng-datatable

我正在使用primeNg <p-table>来显示数据,如下所示:

HTML

<p-table [value]="documents">
        <ng-template pTemplate="header">
            <tr>
                <th [pSortableColumn]="'sName'">
                    File Name
                    <p-sortIcon [field]="'sName'"></p-sortIcon>
                </th>
               <th [pSortableColumn]="'sType'">
                    File Type
                    <p-sortIcon [field]="'sType'"></p-sortIcon>
                </th>
               <th [pSortableColumn]="sDate">
                    File Date
                    <p-sortIcon [field]="'sDate"></p-sortIcon>
                </th>
            </tr>
        </ng-template>
    <ng-template pTemplate="body" let-doc>
        <tr>
            <td>
                {{doc.sName}}
            </td>

        <td>
                {{doc.sType}}
            </td>
        <td>
                {{doc.sDate}}
            </td>                
        </tr>
    </ng-template>
</p-table>

TS

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

this.documents=[{
   "sName":"Book",
   "sType":"PDF",
   "sDate":"20-02-1999"
   },
   {
   "sName":"Book",
   "sType":"PDF",
   "sDate":"09-10-2002"
   },
   {
   "sName":"Cook Book",
   "sType":"Text",
   "sDate":"16-12-1989"
   },
   {
   "sName":"Book",
   "sType":"PDF",
   "sDate":"25-04-2000"
   },
   {
   "sName":"File",
   "sType":"PDF",
   "sDate":"02-01-1989"
   }]
}

我的要求是,File Date字段中的数据应默认在页面加载时进行排序。请指导我如何在页面加载时以降序实现此排序的File Date列?排序工作正常,但没有出现排序日期,请帮我解决问题。

2 个答案:

答案 0 :(得分:0)

您应将 sortField sortOrder 指令添加到p表标签,如下所示:

<p-table [value]="documents" sortField="sDate" sortOrder="-1">

另外,当您编写sDate时,您可能还会在模板中输入错字,有时您会像“ sDate”,“'sDate'”之类的错字和

<p-sortIcon [field]="'sDate">

答案 1 :(得分:0)

对于sortMode =“ multiple”,要获得相同的结果,请设置以下内容:

<p-table #dt ... sortMode="multiple" [multiSortMeta]="[{'field': 'organizationName', 'order': 1}]">