我正在使用带有服务器端的数据表,我当前正在尝试向我的表添加一个机制,这样当我在表中选择一行时,我向服务器发送一个请求,并且服务器返回一个依赖于已选择行的数据集。
$('#Server1 tbody').on( 'click', 'tr', function () {
if ( $(this).hasClass('selected') ) {
$(this).removeClass('selected');
$.ajax( {
url: '/server_data',
type: 'GET',
method: 'GET',
data: {
"sEcho": 1,
"iColumns" : 5,
"iDisplayStart" : 0,
"iDisplayLength" : 10,
"sSearch" : $('#Server1_filter input').val()
},
success: function(data) {
var dataObj = JSON.parse(data)
for (i = 0; i < dataObj.aaData.length; ++i) {
$("#Server1").DataTable().row.add(dataObj.aaData[i]);
}
$("#Server1").DataTable().draw();
}
});
}
else {
table.$('tr.selected').removeClass('selected');
$(this).addClass('selected');
var selectedLine = table.$('tr.selected').children()
$.ajax( {
url: '/select_data',
type: 'GET',
method: 'GET',
data: {
"selectedDate" : $(selectedLine[0]).text(),
"selectedTime" : $(selectedLine[1]).text(),
"selectedType" : $(selectedLine[2]).text(),
"selectedInstance" : $(selectedLine[3]).text(),
"selectedLine" : $(selectedLine[4]).text(),
"sEcho": 1,
"iColumns" : 5,
},
success: function(data) {
//$("#Server1").DataTable().clear();
var dataObj = JSON.parse(data)
//dataObj.selectedRow
for (i = 0; i < dataObj.aaData.length; ++i) {
$("#Server1").DataTable().row.add(dataObj.aaData[i]);
}
$("#Server1").dataTable().draw();
}
});
}
问题在于,由于某种原因,当我调用&#34; select_data&#34;时,我的数据表不会重绘,但是当我调用&#34; server_data&#34;时,它会正确绘制,我无法理解似乎是什么问题 - 当我查看从服务器获取的数据时它正是我期望获得的数据,但数据表不会重新绘制新数据。
你能帮我理解这个问题是什么吗?