2017-04-21 66 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