Angular2 Primeng编辑肮脏的旗帜



我正在使用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>

最新更新