jquery - DataTables fnClearTable 改变列宽

标签 jquery html css datatable datatables

好的。我在使用 DataTables 时遇到问题,我无法让 DataTable 重新填充以前具有的相同列宽,即使它使用相同的数据重新填充也是如此。

我不确定是调用 fnClearTable 的行为改变了一些事情,还是它重新填充了表格,但某些事情正在改变列宽,我不知道如何修复它!

在 JsFiddle 中看这个:

http://jsfiddle.net/h47N2/

我什至尝试调用 fnAdjustColumnSizing(如下所示),但这也无法解决问题

$('#tableID').dataTable().fnAdjustColumnSizing();

要运行 JsFiddle 示例,只需单击顶部的“运行”,然后依次单击“绘制”、“清除”和“重绘”。稍微尝试一下,您就会明白我在说什么。

基本上,我在 jQuery 中填充 DataTable,然后调用 fnClearTable,然后用相同的数据再次填充它。第一次填充,太棒了!甚至完美。然而,第二次,它改变了所有列的宽度,我不知道如何让它恢复到第一次绘制表格时的状态。

请帮忙,因为我在多个元素上多次使用 DataTables 时看到了这一点,它真的开始让我心烦意乱!

最佳答案

查看初始化选项bAutoWidth :

Enable or disable automatic column width calculation. This can be disabled as an optimisation (it takes some time to calculate the widths) if the tables widths are passed in using aoColumns.

由于某些不太清楚的原因,bAutoWidth 的默认值是 true。这就是为什么您一遍又一遍地看到这种行为的原因 :) 只需将此选项设置为 false - forked fiddle -> http://jsfiddle.net/aYhm4/

$('#t').dataTable({
   ...
   bAutoWidth : false
   ...
});

关于jquery - DataTables fnClearTable 改变列宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20714832/

相关文章:

JQuery 将一个模态表单替换为另一个模态表单

javascript - html canvas 1600x1200屏幕撕裂

javascript - 如何使带有 'position: fixed' 的 div 在两个元素之间停止

html - 使用 span 的 Facebook 风格消息气泡

javascript - 仅当从外部源访问站点时加载特定内容

java - 自定义错误放置在 Jqueryvalidation 插件中不起作用

javascript - 在下拉列表中单击时防止 Select2 切换所选项目

javascript - 如何保存 slider jQuery UI 的更改值

jquery - slider 显示在本地主机上但不显示在网络服务器上

html - 我怎么知道一个 block 级元素跨越多行或单行