我正在使用PrimeNG并将表格编辑为可编辑,但我如何识别哪些行已更改,因为除了_ $ visited标志之外我没有看到任何类型的“ng-dirty”或其他脏标志集这只显示单元格被点击。我希望能够一次保存所有表更改,并突出显示已更改的行,而不是在每个单元格更改时保存。样本列如下:
<p-dataTable [value]="parts">
<p-column field="partLength" header="Part Length" [editable]="true" >
由于
答案 0 :(得分:2)
我正在寻找的关于获取编辑值的答案最终是调用onEditComplete和onEdit事件,如下所示:
<p-datatable [value]="parts" [editable]="true" (onEditComplete)="cellEdit($event.data)" (onEdit)="cellDirty($event)"
但是,我仍然无法弄清楚如何突出显示已编辑的单个单元格。我可以通过将它们存储在数组中来获取我已经更改的行和列的索引,但是,如何根据这些行和列索引的列表设置单元格的样式?或者是否有一种更直观的方式来直观地显示细胞被改变了?
答案 1 :(得分: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);
}
答案 2 :(得分:0)
根据primeng使用turbotable。数据表已弃用
要在单元格内联编辑中捕获事件,您可以执行以下操作: -
<input type="text" [(ngModel)]="item[col.name]" (keydown)="onEditColumnInline($event, item['id'])">
不要忘记将以下内容写成: -
<td pEditableColumn="item">
在内部组件中,您可以使用debouncetime()或密钥代码来优化呼叫,这样您就不会在每个keydown上调用该服务
希望这有帮助,谢谢
答案 3 :(得分:-1)
它有一个事件(onRowSelect)=&#34; myMethod($ event)&#34;其中$ event是选中的行
<p-dataTable (onRowSelect)="myMethod($event)">...</p-dataTable>