2017-04-21 91 views
0

我使用PrimeNG並將表格編輯爲可編輯,但如何識別哪些行已更改,因爲我沒有看到任何類型的「ng-dirty」或其他髒標誌一個_ $被訪問的標誌只顯示該單元被點擊。我希望能夠一次保存所有表格更改,並突出顯示更改的行,而不是在每個單元格更改時保存。樣品列如下: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,我最終做的是初始化存儲在組件變量中的第二個項目列表,然後我將數據表格的單元格值與未編輯的列表進行比較,如果不同則會將css類設置爲那裏。這是在由(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