如何重新初始化数据表?

时间:2016-07-28 10:50:08

标签: javascript jquery html css datatable

我有一个包含通知的页面,我想每10秒刷新一次,但我不想重新加载整个页面,只需重新加载包含通知的div。通知本身位于数据表中,在加载页面时会对其进行初始化,但在重新加载div时,我无法重新初始化数据表。 div重新加载很好,但那只是一个普通的表。这是我的代码:

$(document).ready(function () {
    loadNotificationsTable();
});

setInterval(reloadNotificationsTable, 10000);

function reloadNotificationsTable() {
    $('#NotificationsTable').dataTable().fnDestroy();

    $("#notificationsPlaceholder").load(location.href + " #notificationsPlaceholder>*", "");

    $("#notificationsPlaceholder").ready(function () {

        loadNotificationsTable();
    });
};

function loadNotificationsTable() {
    $('#NotificationsTable').dataTable({
        ajax: "data.json",
        "bLengthChange": false,
        'iDisplayLength': 1000,
        "bSort": false,
        "bFilter": false,
        "sDom": 'ft<"bottom"ilp>',
        "bDestroy": false,
        "bPaginate": false,
        "bInfo":false
    });
};

有人能帮助我并告诉我我做错了吗?

2 个答案:

答案 0 :(得分:1)

尝试在load完成回调后重新初始化数据表:

$("#notificationsPlaceholder").load(location.href + " #notificationsPlaceholder>*",function(data){
    loadNotificationsTable();
});

还要将其添加到初始化代码中 因为你想要替换表

https://legacy.datatables.net/ref#bDestroy

"bDestroy": true,

答案 1 :(得分:1)

如果您需要定期刷新表格,请使用:

$('#table_id').DataTable().ajax.reload();

将此代码与setTimeout()函数一起使用,以定期的时间间隔刷新数据表。