我有这段代码可以编辑和更新表格单元格。
$.ajax({
url: url_base + 'update',
type: "POST",
data: params,
dataType: 'json', // data type
contentType: "application/json; charset=utf-8",
success: function(res) {
/*var params = {};
callFunction("getWords", params,
function(bSuccess, res) {
$('#example').dataTable().fnDestroy();
var table = $('#example').DataTable({
data: res,
"columns": [
{ "bSortable": false, "targets": 0, "data": 'UserWord' },
{ "bSortable": false, "targets": 1, "data": 'UserWordAlt1' },
{
"targets": 2,
"data": 'UserWord',
"render": function(data) {
return '<button alt="Edit" class="btn btn-primary" value="' + data + '" onclick="edit(this)"><i class="far fa-edit"></i></button> ' + '<button class="btn btn-danger" id=' + data + ' onclick="del(this)"><i class="fas fa-trash-alt"></i></button>'
}
}
],
"order": [
[1, 'asc']
]
});
}
);*/
$('#updateAnliegenModal').modal('hide');
alertify.success('New word updated successfully');
},
error: function(xhr, resp, text) {
console.log(xhr)
}
})
});
问题是,当我更新行时,我只想影响该行的更改。不刷新dataTable。在当前情况下,我失去了我正在更新的行的焦点,因为再次重新加载了表,并且行按新数据进行了排序。另一个问题是当我使用DataTable的搜索功能搜索特定单词时。如果我想更新找到的单词,我只想显示搜索到的单词,而不是重新加载整个表格。
我评论了正在重新加载新表的那部分...实际上,我再次调用了相同的getWords
函数,该函数在success
上销毁了当前数据表并重新加载了新数据表。