我知道我们可以通过columns.width选项在数据表上设置列宽。但现在我想在xhr事件上更改该选项。
根据我从服务器获取的ajax响应我想隐藏/显示一列并相应地调整其他列宽度(它们都是固定大小)。有没有办法通过API实现这一目标?
我环顾了所有文档,但似乎无法实现。
答案 0 :(得分:2)
一旦dataTable被初始化,您就无法更改设置。但是,如果 使用column.width
和,您已关闭autoWidth
,则每列的宽度很容易更改。这是一个例子:
var table = $('#example').DataTable({
autoWidth: false,
ajax: {
url: 'https://api.myjson.com/bins/avxod'
},
columns: [
{ data: 'name', width: 50 },
{ data: 'position', width: 50 },
{ data: 'salary', width: 50 },
{ data: 'office', width: 50}
]
})
$('#example').on('xhr.dt', function() {
$('#example thead th:eq(1)').width('400');
})
演示 - >的 http://jsfiddle.net/cc7x6h64/ 强>
它有效,因为column.width
被注入每个<th>
style="width: xxx;"