ngx-DataTable sort on a column not working Angular 4
Asked Answered
L

1

11

Though i'm very much new to angular, i'm facing some difficulties using ngx-DataTable. I am using simple ngx-DataTable for simple operations. The problem is on a column, sort is not working though i've declared attr as [sortable]=true. Here's code. Table Definition:

 <ngx-datatable
                [columns]="columns"
                [columnMode]="'force'"
                [headerHeight]="40"
                [footerHeight]="50"
                [rowHeight]="'auto'"
                [limit]="10"
                [rows]='contacts'>

DataTable Contains two columns and Definitions are as as follows.

    <ngx-datatable-column
                        [width]="50"
                        [resizeable]="true"
                        [sortable]="true"
                        [draggable]="true"
                        [canAutoResize]="true" name="Name">
       <ng-template let-row="row" ngx-datatable-cell-template>
          <span>{{row.first_name}}</span>
       </ng-template>
   </ngx-datatable-column>

    <ngx-datatable-column
                        [width]="50"
                        [resizeable]="true"
                        [sortable]="true"
                        [draggable]="true"
                        [canAutoResize]="true" name="Actions">
        <ng-template let-row="row" let-rowIndex="rowIndex" ngx-datatable-cell-template>
      <!--Template Here-->
        </ng-template>
   </ngx-datatable-column>

I just want to make my name column sortable. Please help me guys. Thanks in advance.

Luftwaffe answered 17/1, 2018 at 10:52 Comment(3)
It is rendered correct the table ?Eolanda
You can create your sort functionNevsa
Rendering correctly. @MihaiAlexandru-Ionut. i've some other pages too in which, it is working completly. But not in this. I dont know why..Luftwaffe
L
28

Well it solved. Actually it can't find the values where it can make column sort. so i just written prop='first_name' in ngx-datatable-column declaration to let it know what is being to sort, like this.

<ngx-datatable-column
    [width]="50"
    [resizeable]="true"
    [sortable]="true"
    [draggable]="true"
    [canAutoResize]="true" name="Name" prop="first_name">
</ngx-datatable-column>
Luftwaffe answered 17/1, 2018 at 13:44 Comment(5)
This doesn't work for me. Also why is the value of prop in single quotes instead of double quotes like everything else?!Rimmer
well quote doesn't matters in this. I can check the issue if you share the code. @RimmerLuftwaffe
The explanation is that, by default, the prop value will be the camelcase version of the name (see the documentation swimlane.gitbook.io/ngx-datatable/api/column/inputs#prop-string) but you are using a snakecase name.Bowel
Can we create a custom sort for a particular column itself?Peephole
@VishnuSBabu Yes, we can create custom sorting on column itself. We will have to use comparator property with ngx-datatable-column.Footling

© 2022 - 2024 — McMap. All rights reserved.