我正在尝试更新 React 应用程序中使用的数据表中的一行。
我将 Datatable 对象以及在 React 组件状态中保存的所选行保存为 this.state.myTable
和 this.state.selected
.
我最初像这样保存数据表对象:
var myTable = $('#myTable').DataTable({ ... });
this.setState({ myTable: myTable });
我在行单击事件中保存所选行,如下所示:
$('#myTable tbody').on('click', 'tr', function () {
$(this).toggleClass('selected');
}).on('click', 'tr', function () {
this.setState({ selected: this.state.myTable.rows('.selected') });
}.bind(this));
我更新行数据(根据 docs ),如下所示:
function (newValue) {
var data = this.state.selected.row().data();
data.someValue = newValue
this.state.selected.row().data(data).draw();
},
但是新数据不会反射(reflect)在我的数据表中,除非我更新其他行(但只有这一行被更新,而不是那行)。
我在这里做错了什么?
最佳答案
$(document).ready(function () {
$('#dataTable').on('click', '.update', function () {
var tableRow = $('#dataTable').row($(this).parents('tr'));
var rData = [
test1,
test1,
'<a href="#" data-href="' + response.result[0].id + '" class="update">Update</a>',
'<a href="#" data-href="' + response.result[0].id + '" class="delete">Delete</a>'
];
$('#dataTable')
.row( tableRow )
.data(rData)
.draw();
});
});
您可以使用此代码,它在我们的项目中有效。
关于jquery - 如何更新Datatable中的行数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39910855/