【发布时间】:2016-02-20 22:12:32
【问题描述】:
如何刷新Datatable,发送新的Json数据时
POST 请求接收数据,将其发送到 LoadTable 函数以填充数据表。
function initializeTable(){
$("#submitbutton").on(
'click',
function(){
$.ajax({
type : 'POST',
url : 'rest/log/events',
data : {
fromTime : $("#fromTime-filter").val(),
toTime : $("#toTime-filter").val(),
Text : $("#search-filter-input").val()
},
success : function(data) {
loadTable(data);
},
error : function(jqXHR, textStatus, errorThrown) {
showAjaxError(jqXHR, textStatus, errorThrown,
$("#error-msg"));
}
});
});
}
'data' 被传递给 Load 函数,该函数在 第一次时正确将数据加载到表中。 当我第二次提交 POST 请求时,我在浏览器控制台中看到了新的“数据”,但数据表 not refreshed。
但是当我刷新页面(清除数据表)然后执行新的 POST 时,新数据会正常加载。我希望无需刷新页面即可加载新数据。
function loadTable(data)
{
$('#report-table').dataTable( {
bProcessing : true,
bJQueryUI : true,
bLengthChange : false,
bDestory : true,
bRetrieve : true,
bStateSave : true,
oTableTools: {
sRowSelect: "multi",
aButtons: [ "select_all", "select_none" ]
},
iDisplayLength : 20,
"aaData": data,
"aoColumns": [
{ "mData" : "date" },
{ "mData" : "name" },
{ "mData" : "type" },
{ "mData" : "section" }
]
} );
}
【问题讨论】:
-
$.dataTable 是什么插件?如果是 jQuery DataTables 插件,你会想要使用 $('#report-table').dataTable().fnUpdate(data)。
-
@TAGraves:是的 JQuery 数据表。我应该在哪里添加 fnUpdate(data)?在末尾?我尝试使用 If else 循环
if (typeof viewTable == 'undefined') { datatable(... } else{$('#report-table')datatable.fnUpdate(data)}。但它没有用。
标签: javascript json ajax post datatable