Jquery 如何更新Datatable中的行数据?
我正在尝试更新我的React应用程序中使用的Datatable中的一行 我将Datatable对象以及在React组件状态下保存的选定行保存为Jquery 如何更新Datatable中的行数据?,jquery,reactjs,datatable,Jquery,Reactjs,Datatable,我正在尝试更新我的React应用程序中使用的Datatable中的一行 我将Datatable对象以及在React组件状态下保存的选定行保存为this.state.myTable和this.state.selected 我最初是这样保存Datatable对象的: var myTable = $('#myTable').DataTable({ ... }); this.setState({ myTable: myTable }); 我在“行单击”事件中保存所选行,如下所示: $('#myTab
this.state.myTable
和this.state.selected
我最初是这样保存Datatable对象的:
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));
我更新行数据(根据)如下:
但是新数据不会反映在我的Datatable中,除非我更新了其他行(但是只有这一行被更新,而不是那一行被更新)
我在这里做错了什么?每当状态发生
更改时,您的视图将重新渲染。因此,在更新值时,只需使用setState,而不是直接改变状态
function (newValue) {
var dataType = {...this.state.selected};
var data = dataType.row().data();
data.someValue = newValue
dataType.row().data(data).draw();
this.setState({selected: dataType});
},
$(文档).ready(函数(){
$('#dataTable')。在('click','update',函数(){
var tableRow=$('#dataTable')。行($(this.parents('tr'));
变量rData=[
测试1,
测试1,
'',
''
];
$(“#数据表”)
.行(tableRow)
.数据(rData)
.draw();
});
});
您可以使用此代码,它在我们的项目中起作用
function (newValue) {
var dataType = {...this.state.selected};
var data = dataType.row().data();
data.someValue = newValue
dataType.row().data(data).draw();
this.setState({selected: dataType});
},
$(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();
});
});