PrimgNg: <p-таблица> сортировка столбцов - PullRequest
0 голосов
/ 28 июня 2018

Я использую <p-table>, и мне нужно реализовать сортировку по заголовкам. Я делаю, как показано ниже:

HTML

<p-table [value]="documents">
        <ng-template pTemplate="header">
            <tr>
                <th [pSortableColumn]="">
                    File Name
                    <p-sortIcon [field]=""></p-sortIcon>
                </th>
               <th [pSortableColumn]="">
                    File Type
                    <p-sortIcon [field]=""></p-sortIcon>
                </th>
               <th [pSortableColumn]="">
                    File Date
                    <p-sortIcon [field]=""></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"
   },
   {
   "sName":"Book",
   "sType":"PDF",
   "sDate":"20"
   },
   {
   "sName":"Cook Book",
   "sType":"Text",
   "sDate":"20"
   },
   {
   "sName":"Book",
   "sType":"PDF",
   "sDate":"25-04"
   },
   {
   "sName":"File",
   "sType":"PDF",
   "sDate":"02-01"
   }]
}

Я использовал [pSortableColumn] и [field] в своем коде, но я не получаю, какое значение передать для сортировки этого конкретного поля. Данные отображаются правильно, это единственная сортировка, по которой мне не хватает. Подскажите пожалуйста, как добиться сортировки столбцов. Спасибо

Я не могу использовать <p-dataTable>

Ответы [ 2 ]

0 голосов
/ 22 марта 2019

Просто добавьте дополнительную информацию к принятому ответу от @Antikhippe, если кому-то это нужно.

В примере кода из принятого ответа значок p-sort не изменился.

Так что использование следующего кода работает.

<p-sortIcon [field]="'sName'"></p-sortIcon>
0 голосов
/ 28 июня 2018

Заменить

<th [pSortableColumn]="">
    File Name
    <p-sortIcon [field]=""></p-sortIcon>
</th>

с

<th [pSortableColumn]="'sName'">
    File Name
    <p-sortIcon [field]=""></p-sortIcon>
</th>

для сортировки, например, sName .

...