我有一个dataTable,我在初始化表后动态过滤。我有一个JS函数,需要1个arg,这是用作过滤器的字符串。我正在使用...
在桌面上设置过滤器oTable = fnFilter(strFilter);
这样可以正常工作,但在对表进行过滤后,列似乎会重新调整大小。 我已经将bAutoWidth设置为false,所以我不确定我还能应用什么来防止列调整大小。我希望无论出现什么数据,我在th标签中定义的尺寸都会保留。
答案 0 :(得分:3)
bAutoWidth
只是一个标志,指示dataTables是否应自动计算宽度。将其设置为false是一项优化功能,请参阅docs:
启用或禁用自动列宽计算。这可以 禁用作为优化(需要一些时间来计算 widths)如果使用aoColumns传入表格宽度。
但是浏览器仍然会根据内容扩展/缩小<td>
。这是表的工作方式。为了实现您的目标,诀窍是使用sScrollX
和aoColumns
,如下所示:
var dataTable = $('#example').dataTable({
sScrollX: "100%",
aoColumns: [
{ "sWidth": "50px" },
{ "sWidth": "50px" },
{ "sWidth": "50px" },
{ "sWidth": "50px" },
{ "sWidth": "50px" }
]
});
这样可以得到宽度为250px的表格,每列50px - 无论内容如何。 sScrollX
强制dataTable维护表和列的宽度。
看到这个小提琴 - &gt; http://jsfiddle.net/MW8Ku/证明上述apporach在调用fnFilter
之后也正在工作。
答案 1 :(得分:0)