2017-04-21 6 views
0

PrimeNGを使用していて、テーブルを編集可能にしていますが、「ng-dirty」やその他のダーティーフラグが設定されていないセルがクリックされたことを示す_ _ $ visitedフラグ。私は一度にすべてのテーブルの変更を保存し、各セルが変更されると保存する代わりに、変更された行をハイライトすることができるようにしたい。サンプル列は以下の通りです:Angular2 PrimeNGダーティーフラグを編集する

<p-dataTable [value]="parts"> 
<p-column field="partLength" header="Part Length" [editable]="true" > 

おかげ

答えて

2

私は以下のようにonEditCompleteとのonEditイベントを呼び出すことになった編集済みの値を取得に関してで探していた答え:しかし、私はまだ強調表示する方法を見つけ出すことができません

<p-datatable [value]="parts" [editable]="true" (onEditComplete)="cellEdit($event.data)" (onEdit)="cellDirty($event)" 

を編集された個々のセル。行と列のインデックスを配列に格納することで変更できますが、行と列のインデックスのリストに基づいてセルのスタイルを設定するにはどうすればよいですか?または、セルが変更されたことを視覚的に簡単に表示する方法はありますか?

+0

同じ問題 - 編集したセルをハイライト表示するにはどうすればよいですか? – Samoth

+1

@Samoth、私がやったことは、コンポーネントの変数に格納されている項目の2番目のリストを初期化することでした。次に、データテーブルのセル値を編集前のリストと比較し、異なる場合はcssクラスを設定します。これはby(onEditComplete)というcellEdit()関数で行われました。残念ながら、私はその後企業を移してしまったので、私が行ったことを正確に示すためのコードスニペットはもうありませんでしたが、それは私が短いことをしたものです。 –

+0

ありがとう! https://forum.primefaces.org/viewtopic.php?f=35&t=51598にも同様の回答があります – Samoth

-1

それはイベントがあります(onRowSelect)= $イベントが選択された行である "MyMethodは($イベント)は、"

<p-dataTable (onRowSelect)="myMethod($event)">...</p-dataTable> 
0

あなたはする必要がありますデータと列を含むイベントオブジェクトをプロパティとして返すデータテーブルのonEditイベントを使用します。

<p-dataTable [editable]="true" (onRowSelect)="rowSelected($event)"> 
    ..... 
</p-dataTable> 

editing(event){ 

    if(_.findIndex(this.editedItems,event.data)){ 
    console.log(_.findIndex(this.editedItems,event.data); 
    this.editedItems.push(event.data); 
    console.log(this.editedItems); 
    } 

LIVE DEMO

関連する問題