2011-08-08 137 views
2

我使用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",及其工作很好,因为该表正在呈现。

回答

0

您可以通过调用fnDraw()方法来更新数据表。然而,Datatables将再次从实际数据源(Ajax URI,您的情况)中读取数据。仅限于如果bServerSide: true已设置(通过该数据源,您正在告诉Datatables所有处理都在服务器端完成)。的bServerSide: true

一个副作用是,你需要发送分页细节(iTotalRecords & iTotalDisplayRecords,..)在Ajax响应&其他数据(见Server-side Processing文档)。

Othre副作用是过滤不会再工作下去:(数据表不能滤除它具有部分数据

0

数据表有API在fnReloadAjax功能,你可以粘贴到你的脚本:fnReloadAjax并且你不需要启用服务器端处理来使其工作。

尽管如此:如果你计划合并重复刷新(即表格刷新每10秒钟显示“实时”数据)这样做的最好方法是定期从AJAX源中找出修改后的数据(也许通过比较记录中的“修改”时间戳)和使用fnAddData添加/更新/删除这些行。对于客户端而言,这比每次重新加载整个数据集都要便宜。