gpt4 book ai didi

datatable - 角 5 : how to update datatable after deleting a row

转载 作者:行者123 更新时间:2023-12-04 12:44:13 25 4
gpt4 key购买 nike

我能够从数据库中异步删除选定的行,但是如何在不刷新页面的情况下更新 View 部分。
这是我的组件代码。

import { Component, OnInit, Input } from '@angular/core';
import { Router } from "@angular/router";
import { UsersService } from 'app/+users/users.service';
import { dateFormatPipe } from 'app/shared/custom-pipe/date-format.pipe';
import { FlashMessagesService } from 'angular2-flash-messages';

declare var $:any;

@Component({
selector: 'app-manage-user',
templateUrl: './manage-user.component.html'
})

export class ManageUserComponent implements OnInit{

constructor(
private usersService: UsersService,
private route: Router,
private _flash: FlashMessagesService,
) {}

tableData: any;

ngOnInit() {
this.fetchTableData();
}

fetchTableData(){
this.tableData = {
ajax: (data, callback, settings) => {
this.usersService.getUsers(0).subscribe(data => {
if(data.success){
callback({
aaData: data.data

});
} else {
alert(data.msg);
}
},
error => {
alert('Internal server error..check database connection.');
});

},
columns: [
{
render: function (data, type, row, meta) {
return meta.row + 1;
}
},
{
data: function (name) { return name.firstname+ ' ' + name.lastname}
},
{data: 'email'},
{data: 'user_role'},
{data: function(data){
return new dateFormatPipe().transform(data.created_at);
}},
{
render: function (data, type, row) {
return `<button type="button" class="btn btn-warning btn-xs edit" data-element-id="${row._id}">
<i class="fa fa-pencil-square-o"></i> Edit</button>
<button type="button" class="btn btn-danger btn-xs delete" data-element-id="${row._id}">
<i class="fa fa-pencil-square-o"></i> Delete</button>`;
}
}
],
buttons: [
'copy', 'pdf', 'print'
]
};

document.querySelector('body').addEventListener('click', (event)=> {
let target = <Element>event.target; // Cast EventTarget into an Element
if (target.tagName.toLowerCase() === 'button' && $(target).hasClass('edit')) {
this.user_edit(target.getAttribute('data-element-id'));
}
if (target.tagName.toLowerCase() === 'button' && $(target).hasClass('delete')) {
this.user_delete(target.getAttribute('data-element-id'));
}
});

}

user_delete(user_id){
this.usersService.deleteUserById(user_id).subscribe(data => {
if(data.success){
// On successful deletion of the data from the database I need to update the datatable so that the deleted row will vanish.

} else {
this._flash.show(data.msg , { cssClass: 'alert alert-warning fade in', timeout: 4000 });
}
},
error => {
this._flash.show('Internal server error..check database connection.' , { cssClass: 'alert alert-warning fade in', timeout: 4000 });
});
}

user_edit(user_id){
console.log("user edit:" +user_id);
}

}

截至目前,我可以从数据库中删除该行,但删除后,删除的行仍然可见。如果我刷新页面,删除的行将不可见。如何异步更新数据表?

最佳答案

尝试使用 *ngIf directive table 上。

<div class="widget-body no-padding" *ngIf="tData">
<sa-datatable [options]="tableData" paginationLength="true" tableClass="table table-striped table-bordered table-hover" width="100%">
<thead>
<tr>
<th data-hide="phone"> ID </th>
<th data-class="expand"> Name </th>
<th data-hide="phone,tablet"> Email </th>
<th data-hide="phone,tablet"> Role </th>
<th data-hide="phone,tablet"> join Date </th>
<th data-hide="phone,tablet"> Action </th>
</tr>
</thead>
</sa-datatable>
</div>

默认情况下制作 tData: boolean = false;并在调用 API 时使其为真,以便如果有任何数据则将呈现表。
fetchTableData(){
this.tData = true;
...
}

并在调用删除函数时使 tData 为 false 并调用 API,如下所示
user_delete(user_id) {
this.tData= false;
this.usersService.deleteUserById(user_id).subscribe(data => {
if (data.success) {
// On successful deletion of the data form database i need to update the datatable so that the deleted row will be vanished.
this.fetchTableData();
this._flash.show(data.msg, { cssClass: 'alert alert-info fade in', timeout: 4000 });
} else {
this._flash.show(data.msg, { cssClass: 'alert alert-warning fade in', timeout: 4000 });
}
},
error => {
this._flash.show('Internal server error..check database connection.', { cssClass: 'alert alert-warning fade in', timeout: 4000 });
});
}

成功删除调用 fetchTableData();哪个实习生加载更新的数据并显示在表格中。

关于datatable - 角 5 : how to update datatable after deleting a row,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49067363/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com