排序灌注列

时间:2019-03-01 21:44:46

标签: angular primeng primeng-turbotable

我使用的是primeng表,并且使用了列的切换方法。唯一的问题是,将列切换为关闭然后再打开时,列将返回到表的末尾。我想知道是否有人知道如何对它们进行排序,以使列回到原始位置

我试图在我的component.ts文件中使用各种排序方法,但是没有运气。

Here是我从PrimeNG使用的示例(可以在那里测试并查看代码)

1 个答案:

答案 0 :(得分:2)

示例中的列顺序由 selectedColumns 数组确定。 默认情况下,在MultiSelect组件中,它将任何更改附加到数组的末尾。 因此,您应该在MultiSelect上的每个更改事件之后对它进行排序。添加事件处理程序 modelChange()

<p-multiSelect [options]="cols" [ngModel]="selectedColumns" 
            (ngModelChange)='modelChange($event)'
                optionLabel="header"
                        selectedItemsLabel="{0} columns selected" [style]="{minWidth: '200px'}" defaultLabel="Choose Columns"></p-multiSelect>

在组件ts文件中,

  modelChange(event) {
    console.log('change fired')
    this.selectedColumns = event;
    this.selectedColumns.sort(
      function compare(a, b) {
        if (a.field < b.field)
          return -1;
        if (a.field > b.field)
          return 1;
        return 0;
      }

    );
    console.log(this.selectedColumns);
  }
}

在此处查看演示:https://stackblitz.com/edit/angular7-template-fork-first-ow8wtw