刷新数据表

时间:2011-08-08 17:42:38

标签: kohana-3 jquery-datatables

我正在使用ajax更新我的表,该进程与数据表无关,我想执行表刷新

$('#listing').dataTable( {
        "bDestroy": true,
            "bProcessing": true,
    "sAjaxSource": "getlist/",
            "bJQueryUI": true,


            "aoColumns": [
                    { "mDataProp": "id" },      
        { "mDataProp": "aname" },           
        { "mDataProp": "acode" },
        { "mDataProp": "editlink" },
                    { "mDataProp": "deletelink" },

    ],
            "aoColumnDefs": [ 
                    { "bSearchable": false, "bVisible": false, "aTargets": [ 0 ] }

    ]



} );

我的数据会自定义显示为{"aaData":[{"id":"14",,并且因为正在呈现表格,所以数据效果很好。

2 个答案:

答案 0 :(得分:0)

您可以通过调用fnDraw()方法更新数据表。但是,如果设置了 bServerSide: true ,那么Datatables将再次从实际数据源(在您的情况下为Ajax URI) ONLY 中读取数据(您正在告诉它)所有处理都在服务器端完成的数据表。)

bServerSide: true的一个副作用是你需要发送分页细节(iTotalRecords& iTotalDisplayRecords,..)& Ajax响应中的其他数据(请参阅Server-side Processing docs)。

其他副作用是过滤不再起作用:(数据表不能过滤它所拥有的部分数据。

答案 1 :(得分:0)

DataTables在API中有一个fnReloadAjax函数,您可以将其粘贴到脚本中:fnReloadAjax。而且您无需为此启用服务器端处理。

但请注意:如果您计划合并重复刷新(即表每10秒刷新一次以显示“实时”数据),最好的方法是定期识别来自AJAX源的修改数据(也许通过比较记录中的“已修改”时间戳)并使用fnAddData添加/更新/删除这些行。对于客户端而言,这比每次重新加载整个数据集要便宜。