Search code examples
angularprimengprimeng-datatable

How to sort data in a PrimeNG DataTable with Row Grouping


What I want to do is to sort the data already grouped in alphabetical order or custom order. I used the sortField attribute which specify the groupheader order but I need to order the data inside the group too.

enter image description here


Solution

  • I have the same issues. I have added customized sort to solve this issues

    To add a customized sort

    <p-column   field="color" header="color"  sortable="custom" (sortFunction)="sortByColor($event)"></p-column>
    

    In the typescript create a customSort

    sortByColor(e) {
        this.cars.sort(function (a, b) {
          let aGroup = a.name.toLowerCase();
          let bGroup = b.name.toLowerCase();
          if (aGroup > bGroup) return 1;
          if (aGroup < bGroup) return -1;
          let aSort = a.color.toLowerCase();
          let bSort = b.color.toLowerCase();
          if (aSort > bSort) return 1;
          if (aSort < bSort) return -1;
          return 0
        });
      }