DataTables ajax.reload() 不工作
Posted
技术标签:
【中文标题】DataTables ajax.reload() 不工作【英文标题】:DataTables ajax.reload() not working 【发布时间】:2017-09-05 08:26:23 【问题描述】:我花了这么多时间,不明白为什么数据表不能刷新我的表,我已经对这个数据表感到疯狂了
我的代码在下面,我花了数周时间,但无法让它工作,我使用 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": "test@test.com"]
【问题讨论】:
【参考方案1】:错误是你以这种格式使用了 ajax reload
table.ajax.reload()
但为了纠正错误,我需要这样做
$('#table').DataTable().ajax.reload()
希望这对其他人有所帮助,在这件小事上花了很多时间
【讨论】:
但是为什么呢?文档 (datatables.net/reference/api/ajax.reload()) 说可以使用该变量。【参考方案2】:请检查您的数据表 Jquery 版本以使用 ajax.reload()。如果您使用的是(1.10)等旧版本,则必须使用数据表的 API。
$('#table_data').dataTable( ).api().ajax.reload();
它会为你工作。
或重新加载表,您可以首先销毁数据表并再次加载它。例如。
table = $("#table_data").datatable()
$("#my-button").click(function()
table.fnDestroy();
table = $("#table_data").dataTable();
);
【讨论】:
出现错误:未捕获的类型错误:dataTable.fnDestroy 不是函数。 使用DataTable()
代替datatable()
以上是关于DataTables ajax.reload() 不工作的主要内容,如果未能解决你的问题,请参考以下文章
jQuery DataTables:如何添加类if the string exists in the?
数据表 ajax.reload() 和 .clear() 不工作