Responsive-styling/desktop-styling 不适用于 JQuery 数据表
Responsive-styling/desktop-styling doesn't work for JQuery datatable
Responsive-styling/desktop-styling 在以下两种情况下不起作用:
1) 调整浏览器大小 window
2) 当数据表驻留在折叠的手风琴内部并且用户打开手风琴时,样式不起作用。
我尝试了以下方法,但除了 dataTable 重新初始化($('#table').DataTable({parameter list})
)之外没有任何效果,但如果行数非常高,加载数据会花费大量时间)。我尝试了以下方法:
var $dataTable = $('#table').dataTable();
$dataTable .css({ width: $dataTable .parent().width() });
$dataTable .fnAdjustColumnSizing();
$('#table').fnDraw();
$('#table').resize();
$('#table').columns.adjust().draw();
解决方案
您需要在显示内容时处理事件,并在事件处理程序中调用 responsive.recalc()
and columns().adjust()
API 方法。这将在显示更改后重新计算列宽。
$('#table').DataTable()
.columns.adjust()
.responsive.recalc();
有关详细信息,请参阅 responsive.recalc()
and columns().adjust()
API 方法。
演示
有关代码和演示,请参阅 this jsFiddle。
链接
有关 jQuery 数据表和 Bootstrap 选项卡的最常见问题的解决方案,请参见 jQuery DataTables – Column width issues with Bootstrap tabs。
Responsive-styling/desktop-styling 在以下两种情况下不起作用: 1) 调整浏览器大小 window 2) 当数据表驻留在折叠的手风琴内部并且用户打开手风琴时,样式不起作用。
我尝试了以下方法,但除了 dataTable 重新初始化($('#table').DataTable({parameter list})
)之外没有任何效果,但如果行数非常高,加载数据会花费大量时间)。我尝试了以下方法:
var $dataTable = $('#table').dataTable();
$dataTable .css({ width: $dataTable .parent().width() });
$dataTable .fnAdjustColumnSizing();
$('#table').fnDraw();
$('#table').resize();
$('#table').columns.adjust().draw();
解决方案
您需要在显示内容时处理事件,并在事件处理程序中调用 responsive.recalc()
and columns().adjust()
API 方法。这将在显示更改后重新计算列宽。
$('#table').DataTable()
.columns.adjust()
.responsive.recalc();
有关详细信息,请参阅 responsive.recalc()
and columns().adjust()
API 方法。
演示
有关代码和演示,请参阅 this jsFiddle。
链接
有关 jQuery 数据表和 Bootstrap 选项卡的最常见问题的解决方案,请参见 jQuery DataTables – Column width issues with Bootstrap tabs。