我正在尝试实现单击屏幕上的按钮将导致jQuery dataTable刷新的功能(因为自创建dataTable以来,服务器端数据源可能已更改)。
这就是我所拥有的:
$(document).ready(function() {
$("#my-button").click(function() {
$("#my-datatable").dataTable().fnReloadAjax();
});
});
但是当我运行它的时候,它什么也没做。单击按钮时刷新dataTable的正确方法是什么?提前感谢!
发布于 2012-10-17 20:34:13
您可以尝试以下操作:
function InitOverviewDataTable() {
oOverviewTable = $('#HelpdeskOverview').dataTable({
"bPaginate": true,
"bJQueryUI": true, // ThemeRoller-stöd
"bLengthChange": false,
"bFilter": false,
"bSort": false,
"bInfo": true,
"bAutoWidth": true,
"bProcessing": true,
"iDisplayLength": 10,
"sAjaxSource": '/Helpdesk/ActiveCases/noacceptancetest'
});
}
function RefreshTable(tableId, urlData) {
$.getJSON(urlData, null, function(json) {
table = $(tableId).dataTable();
oSettings = table.fnSettings();
table.fnClearTable(this);
for (var i = 0; i < json.aaData.length; i++) {
table.oApi._fnAddData(oSettings, json.aaData[i]);
}
oSettings.aiDisplay = oSettings.aiDisplayMaster.slice();
table.fnDraw();
});
}
// Edited by Prasad
function AutoReload() {
RefreshTable('#HelpdeskOverview', '/Helpdesk/ActiveCases/noacceptancetest');
setTimeout(function() {
AutoReload();
}, 30000);
}
$(document).ready(function() {
InitOverviewDataTable();
setTimeout(function() {
AutoReload();
}, 30000);
});
发布于 2014-06-17 09:18:18
在DataTables的1.10.0版本中,它是内置的,并且很容易:
var table = $('#example').DataTable();
table.ajax.reload();
或者只是
$('#example').DataTable().ajax.reload();
发布于 2016-06-21 19:09:18
首先销毁datatable,然后绘制datatable。
$('#table1').DataTable().destroy();
$('#table1').find('tbody').append("<tr><td><value1></td><td><value1></td></tr>");
$('#table1').DataTable().draw();
https://stackoverflow.com/questions/12934144
复制相似问题