我想用DataTables

时间:2017-02-20 21:20:34

标签: jquery ajax datatables

我想每秒重新安排一次表的顺序。 但是......我不知道。 默认设置如下。

$(document).ready(function() {
    $('#dataTables-example').DataTable({
        responsive: true,
            "paging":   false,
            "info":     false,
            "searching" : false,
            "order": [[ 1, "desc" ]]
    });
});

在这种状态下,我怎样才能简单地修改表的顺序,以便继续定期重新排序?表中的值由其他JavaScript处理。这就是为什么我只想用同样的方法重新排序每一秒。

所以,我这样做了。但那不起作用。

$(document).ready( function () {
   var refreshTable = $('#dataTables-example').DataTable({
        responsive: true,
            "paging":   false,
            "info":     false,
            "searching" : false,
            "order": [[ 1, "desc" ]]
   });
   setInterval( refreshTable , 1000 );});

你知道怎么解决吗?

2 个答案:

答案 0 :(得分:1)

所以你想要的是每秒重绘表...(你确定吗?这个用途非常重要 - 当数据发生变化时重绘得更好...但那是另一篇文章......)

你几乎就在那里 - 只是错过了simple little API call

$(document).ready( function () {
    var myTable = $('#dataTables-example').DataTable({
        responsive: true,
            "paging":   false,
            "info":     false,
            "searching" : false,
            "order": [[ 1, "desc" ]]
    });
    setInterval(function() {
        myTable.rows().invalidate().draw(); 
    }, 1000 );
});

<强>更新

根据更改数据的人员以及方式,您可能必须在重绘之前使dataTable的缓存无效;我已更新上面的代码段。

请注意,如果您的其他脚本直接更改DOM表中的数据,并且您通过JSON加载数据,则可能必须强制DataTables在您失效时使用DOM作为数据源:

myTable.rows().invalidate('dom').draw();

(请参阅invalidate上的文档)

希望它有所帮助!

答案 1 :(得分:0)

请测试一下:

$(document).ready( function () {
 function refreshTable() {
    $('#dataTables-example').DataTable({
    responsive: true,
        "paging":   false,
        "info":     false,
        "searching" : false,
        "order": [[ 1, "desc" ]]
});}
setInterval(refreshTable , 1000 );});