Angular Priming-p-dataTable新行内联的强制排序

Angular Priming-p-dataTable新行内联的强制排序,angular,primeng,primeng-datatable,Angular,Primeng,Primeng Datatable,我试图为最终用户编写一种方法,让其单击“添加新行”按钮,并将一个空行内联显示为p-datatable的第一行。当前,当我在幕后将新项添加到数组中时,该行在表中似乎随机出现 我认为解决方案必须包括能够在幕后通过隐藏列进行排序,无论用户选择的排序顺序是什么。例如,用户当前正在按姓氏列升序排序,所以我先按不可见的排序器列降序排序,然后按姓氏升序排序。对于sorter,表中的每个记录的值都为0,除了新添加的行,该行的值为1 那么,我如何覆盖p-datatable的排序,以使新行始终显示在表的顶部,而不管

我试图为最终用户编写一种方法,让其单击“添加新行”按钮,并将一个空行内联显示为p-datatable的第一行。当前,当我在幕后将新项添加到数组中时,该行在表中似乎随机出现

我认为解决方案必须包括能够在幕后通过隐藏列进行排序,无论用户选择的排序顺序是什么。例如,用户当前正在按姓氏列升序排序,所以我先按不可见的排序器列降序排序,然后按姓氏升序排序。对于sorter,表中的每个记录的值都为0,除了新添加的行,该行的值为1

那么,我如何覆盖p-datatable的排序,以使新行始终显示在表的顶部,而不管最终用户如何使用GUI对表进行排序?现在,当用户单击要排序的列时,它会在幕后删除我的排序


谢谢

首先,您可能需要创建一个行伪对象(我动态创建它,因为我从服务器获取列的名称)。 根据Priming docs,在添加/删除行时,您应该始终创建一个新的数组引用,而不是操作现有数组,因为如果引用没有更改,Angular不会触发setter。 新行将显示在顶部,直到用户单击列标题对行进行排序

以下是我用于将行添加到表开头的代码:

buildNewRowDummy(): string[] {
    const newRowDummy = [];
    for (let col = 0; col < this.cols.length; col++) {
      const columnName = this.cols[col];
      newRowDummy[columnName] = '';
    }

    return newRowDummy;
  }

addRow() {
  this.rows = [ this.buildNewRowDummy(), ...this.rows ];
}
buildNewRowDummy():字符串[]{
常量newRowDummy=[];
for(设col=0;col
首先,您可能需要创建一个行伪对象(我动态创建它,因为我从服务器获取列的名称)。 根据Priming docs,在添加/删除行时,您应该始终创建一个新的数组引用,而不是操作现有数组,因为如果引用没有更改,Angular不会触发setter。 新行将显示在顶部,直到用户单击列标题对行进行排序

以下是我用于将行添加到表开头的代码:

buildNewRowDummy(): string[] {
    const newRowDummy = [];
    for (let col = 0; col < this.cols.length; col++) {
      const columnName = this.cols[col];
      newRowDummy[columnName] = '';
    }

    return newRowDummy;
  }

addRow() {
  this.rows = [ this.buildNewRowDummy(), ...this.rows ];
}
buildNewRowDummy():字符串[]{
常量newRowDummy=[];
for(设col=0;col