我正在使用Primeng并将表格为可编辑,但是我如何识别哪些行被更改,因为我看不到任何类型的" ng-dirty"或其他肮脏的标志设置除了_ $访问的标志以外,该标志仅显示单元单击。我希望能够立即保存所有表更改,并突出显示更改的行而不是保存时,随着每个单元格的更改。示例列如下:
<p-dataTable [value]="parts">
<p-column field="partLength" header="Part Length" [editable]="true" >
谢谢
我正在寻找的答案,以获取编辑值,最终会呼叫OneDitComplete和OneDit事件:
<p-datatable [value]="parts" [editable]="true" (onEditComplete)="cellEdit($event.data)" (onEdit)="cellDirty($event)"
但是,我仍然无法弄清楚如何突出已编辑的单个单元。我可以通过将它们存储在数组中来获取我更改的行和列的索引,但是,如何根据这些行和列索引的列表设置单元格的样式?还是有一种更简单的方法可以视觉显示单元格更改?
您应该使用DataTable的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);
}
实时演示
根据Primeng使用Turbotable。DataTable已弃用
要在单元格内编辑中捕捉事件,您可以做类似的事情: -
<input type="text" [(ngModel)]="item[col.name]" (keydown)="onEditColumnInline($event, item['id'])">
不要忘记将以下内容放入以下内容: -
<td pEditableColumn="item">
在组件内部,您可以使用debouncetime((或密钥编码来优化呼叫,这样您就不会在每个键盘上调用服务
希望这会有所帮助,谢谢
它具有事件(onrowselect(=" myMethod($ event("其中$ event是选择的行
<p-dataTable (onRowSelect)="myMethod($event)">...</p-dataTable>