Javascript dataTable阻止在筛选数据时调整列大小
我有一个dataTable,一旦该表被初始化,我就会对其进行动态筛选。我有一个JS函数,它接受1 arg,这是用作过滤器的字符串。我正在使用…在桌子上设置过滤器Javascript dataTable阻止在筛选数据时调整列大小,javascript,jquery,datatables,Javascript,Jquery,Datatables,我有一个dataTable,一旦该表被初始化,我就会对其进行动态筛选。我有一个JS函数,它接受1 arg,这是用作过滤器的字符串。我正在使用…在桌子上设置过滤器 oTable = fnFilter(strFilter); 这很好,但在筛选表之后,列似乎会自行调整大小。 我已经将bAutoWidth设置为false,所以我不确定还能应用什么来阻止列的大小调整。我希望在th标记中定义的尺寸保持不变,无论存在什么数据。bAutoWidth只是指示dataTables是否应自动计算宽度的标志。将其设置
oTable = fnFilter(strFilter);
这很好,但在筛选表之后,列似乎会自行调整大小。
我已经将bAutoWidth设置为false,所以我不确定还能应用什么来阻止列的大小调整。我希望在th标记中定义的尺寸保持不变,无论存在什么数据。
bAutoWidth
只是指示dataTables是否应自动计算宽度的标志。将其设置为false是一项优化功能,请参阅:
启用或禁用自动列宽计算。这可能是
作为优化禁用(需要一些时间来计算
宽度)如果使用aoColumns传入表宽度
但浏览器仍会根据内容展开/收缩
。这就是桌子的工作原理。要实现您想要的,诀窍是使用sScrollX
和aoColumns
如下:
var dataTable=$(“#示例”).dataTable({
sScrollX:“100%”,
AO列:[
{“sWidth”:“50px”},
{“sWidth”:“50px”},
{“sWidth”:“50px”},
{“sWidth”:“50px”},
{“sWidth”:“50px”}
]
});
这给出了一个宽度为250px的表格,每列为50px,与内容无关sScrollX
强制dataTable保持表和列的宽度
查看此小提琴->演示在调用
fnFilter
后,上述方法也在工作。有关sScrollX
和sWidth
的答案使用的是遗留数据表API。自V1.10+以来,语法为:
$('#example').dataTable( {
"scrollX": true,
"columns": [
{ "width": "50px" },
{ "width": "50px" },
{ "width": "50px" },
{ "width": "50px" },
{ "width": "50px" }
]
});
Ref: