如何动态重置表格宽度 - 数据表?

时间:2013-01-30 17:04:00

标签: jquery datatables

我正在使用kike表插件来动态扩展/缩小列宽。一切似乎工作得很好,除了当列宽减小时,表宽度没有减少,因此表的最后一列占用了可用的额外宽度。

有没有办法将列宽重置回原始列宽?

我的sScrollx设置为100%

"sScrollX": "100%",

我有一个将表重置回原始宽度的功能。

function resizeTable(tableId)
{
var oTable = $("#" + tableId).dataTable();
var oSettings = oTable.fnSettings();
oSettings.oScroll.sX = "840px"; // <- updated!
oTable.fnDraw(false);
}

我尝试使用上面的代码重置单击按钮时的滚动x值,但这似乎对表的宽度没有任何影响。

我尝试使用oTable.fnAdjustColumnSizing();,但它也没有帮助我......

有人可以告诉我解决此问题的最佳方法吗?

2 个答案:

答案 0 :(得分:3)

您可以尝试在dataTables设置中指定bAutoWidth : false

答案 1 :(得分:1)

Kike表(表类)覆盖了数据表(类),因此我无法在这些表上使用任何数据表函数,因此我提出了如下解决方案,

function resizeDataTable(dataTableid){
 $("#" + dataTableid).removeClass('kiketable-colsizable'); // Remove kike column class
    var oTable = $("#" + dataTableid).dataTable(); 
    $(oTable).css({ width: $(oTable).parent().width() }); // Perform datatable functions
    oTable.fnAdjustColumnSizing(); 
  $("#" + dataTableid).addClass('kiketable-colsizable'); // Add kike column class
}

这完美无缺。