如何为 angular2 应用程序提供内联编辑和删除按钮以及 prime ng 中的新按钮



我有一个页面,它只有一个用户的东西。 但是现在我必须创建一个表并且我需要获取数据,以便在表中我必须内联具有编辑和删除按钮。如果我单击编辑按钮,那么我必须能够编辑整行,删除意味着必须删除整行。 当我单击"新建"按钮时,它必须为我创建一个带有编辑和删除操作的新行。 我需要使用 ng-prime 本身来执行此操作。 所以,任何人都可以帮我提供链接或任何演示。

您可以使用[editable]="true"

来自官方文档参考:

通过将可编辑属性设置为 true 来启用 Incell 编辑 数据表和列。单击单元格可切换到编辑模式和 按回车键或单击另一个单元格将其切换回视图 模式。

元件:

import { Component } from '@angular/core';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
data: any = [];
delRow;
editRow(row) {
this.data.filter(row => row.isEditable).map(r => { r.isEditable = false; return r })
row.isEditable = true;
}
save(row){
row.isEditable = false
}
addNew(){
this.data.push({
name: '',
value: ''
})
}
delete(row){
console.log(row);
this.delRow = this.data.indexOf(row);
this.data.splice(this.delRow,1);
console.log(this.data);
}
getData() {    
this.data = [
{name: "Name1", value: "value1"},
{name: "Name2", value: "value2"},
{name: "Name3", value: "value3"},
{name: "Name4", value: "value4"}
];
this.data.map(row => {      
row.isEditable = false;        
});    
};

}

.HTML:

<button (click)="getData()">Load Data</button>
<button (click)="addNew()">Add New</button>
<p-dataTable [immutable]="false" [value]="data" [editable]="true">
<p-column field="name" header="Name">
<ng-template let-row="rowData" pTemplate="body">
<div *ngIf="!row.isEditable">{{row.name}}</div>
<div *ngIf="row.isEditable">
<input type="text" [(ngModel)]="row.name">
</div>
</ng-template>
</p-column>
<p-column field="value" header="Value">
<ng-template let-row="rowData" pTemplate="body">
<div *ngIf="!row.isEditable">{{row.value}}</div>
<div *ngIf="row.isEditable">
<input type="text" [(ngModel)]="row.value">
</div>
</ng-template></p-column>    
<p-column field="" header="" [style]="{'text-align':'center'}">
<ng-template let-row="rowData" pTemplate="body">
<button (click)="editRow(row)">Edit</button>
</ng-template>
</p-column>
<p-column field="" header="" [style]="{'text-align':'center'}">
<ng-template let-row="rowData" pTemplate="body">
<button (click)="save(row)">Save</button>
</ng-template>
</p-column>
<p-column field="" header="" [style]="{'text-align':'center'}">
<ng-template let-row="rowData" pTemplate="body">
<button (click)="delete(row)">Delete</button>
</ng-template>

</p-column>
</p-dataTable>

这是一个工作演示

最新更新