2017-04-10 64 views
1

我花了这么多时间,不能udnerstand为什么数据表无法刷新我的表,我得到这个已经疯狂的DataTable数据表ajax.reload()不工作

我的代码如下,我花了几个星期就可以了但无法得到它的工作和我使用ajax.reload

DataTablesDraw = (selector, order, pages, file, sort, column, template, data_set) -> 
$(selector).DataTable 
    'pageLength': pages 
    'ordering': sort 
    'destroy' : true, 
    'paging': true 
    'responsive': true 
    'searching': false 
    'info': false 
    'lengthChange': true 
    'autoWidth': false 
    'select': true 
    'dom': 'Bfrtip', 

    'buttons': [ 
      { 
      'extend': 'excelHtml5', 
      'title': file + new Date() 
      }, 
      'copyHtml5' 
     ], 
    'order': [ [ column, 'desc' ] ], 
    'language': { 
     buttons: { 
      copyTitle: i18n[lang]['id[9]'], 
      copySuccess: { 
       _: i18n[lang]['id[10]'] + ' %d ' + i18n[lang]['id[11]'], 
       1: i18n[lang]['id[12]'] 
      } 
     } 
    } 
    'ajax': '/settings/ranges/ranges.txt', 
    "dataSrc": "data", 
    'drawCallback': (settings) -> 

    $('.dataTables_paginate > span').remove() 
    excel = $('#DataTables_Table_' + order + '_wrapper .buttons-excel').detach() 
    copy = $('#DataTables_Table_' + order + '_wrapper .buttons-copy').detach() 

    if not $('#DataTables_Table_' + order + '_wrapper thead.tfoot').length 
     $(this).append '<thead class="tfoot">' + 
      '<tr>' + 
       '<th colspan="10">' + 
        '<div class="export">' + 
         '<div class="buttons"></div>' + 
        '</div>' + 
        '<div class="paginator"></div>' + 
       '</th>' + 
      '</tr>' + 
     '</thead>' 

    paginator = $('#DataTables_Table_' + order + '_paginate').detach() 
    $('#DataTables_Table_' + order + '_wrapper thead .paginator').append paginator 
    $('#DataTables_Table_' + order + '_wrapper thead .export .buttons').append excel, copy 

    if @fnPagingInfo().iTotalPages <= 1 
     $('#DataTables_Table_' + order + '_paginate').hide() 
     $('#DataTables_Table_' + order + '_info').hide() 
    else 
     $('#DataTables_Table_' + order + '_paginate').show() 
     $('#DataTables_Table_' + order + '_info').show() 

    return 

    'columns': template 
return 

调用

table= DataTablesDraw '.__ranges__', 0, 25, 'Current Ranges ', true, 5, CurrentRangesTemplate, ranges #selector, order, pages, file name, sorting 
table.ajax.reload() 

表是从文件的一切获取数据是好的,只是ajax.reload()着修复Ť Ø工作

数据

{"data": [{"status": "1", "environment": "demo", "currency": "EUR", "range_to": 42342, "date_update": 1491814286, "server": "server", "date_create": 1491814286, "platform": "platform", "range_from": 432423, "user": {"email": "[email protected]"}]} 

回答

0

的错误是,美中那朵格式使用AJAX重装

table.ajax.reload()

但是为了解决我仅仅指刚需这样做的错误

$( '#表')。数据表()。ajax.reload()

希望这将帮助其他,花了这么多时间在上面这个小东西

2

请检查您使用ajax.reload数据表中的jQuery()版本。如果您使用的是旧版本(1.10),那么您必须使用数据表的API。

$('#table_data').dataTable().api().ajax.reload(); 

这将是你的工作。

或者为了重新载入表格,你可以首先销毁数据表并重新载入它。

table = $("#table_data").datatable() 
$("#my-button").click(function() { 
    table.fnDestroy(); 
    table = $("#table_data").dataTable(); 
});