2017-11-17 23 views
0

エンドユーザーが[新しい行を追加]ボタンをクリックし、空白の行をpの最初の行としてインラインで表示する方法をコーディングしようとしています-データ表。現在、シーンの背後にある配列に新しい項目を追加すると、その行はテーブル内の一見ランダムな場所に表示されます。PrimeNG - p-dataTableの新しい行を強制的に並べ替える

ユーザーが選択した並べ替え順序がテーブルにあるかどうかにかかわらず、隠れた列で並べ替えることができるソリューションが必要だと思います。たとえば、ユーザーは現在姓の列を昇順でソートしていますので、最初は非表示のソーター列を降順に、次に名を昇順に並べ替えます。テーブルのすべてのレコードは、新しく追加された行を除いて、ソーターの値が0になります。

どのようにしてp-datatableのソートをオーバーライドすればよいですか?エンドユーザーがGUIを使用してテーブルをソートしても、新しい行は常にテーブルの上部に表示されます。今、ユーザーが並べ替える列をクリックすると、シーンの背後にある並べ替えが削除されます。

ありがとうございます!

+0

は私の答えを持っているあなたを助けましたか? –

答えて

0

最初に、ダミー行を作成することもできます(サーバーから列の名前を取得するため、動的に作成します)。 primeng docsによれば、行が追加/削除されるとき、参照が変更されない場合、Angularはセッターをトリガしないので、既存の配列を操作する代わりに常に新しい配列参照を作成する必要があります。 ユーザーが列ヘッダーをクリックして行を並べ替えるまで、新しい行が上部に表示されます。ここで

は、私は、テーブルの先頭に行を追加するために使用するコードです:

bildNewRowDummy(): 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.bildNewRowDummy(), ...this.rows ]; 
 
}

関連する問題