通过API动态更改数据表列宽

时间:2017-06-08 02:10:45

标签: javascript jquery datatables

我知道我们可以通过columns.width选项在数据表上设置列宽。但现在我想在xhr事件上更改该选项。

根据我从服务器获取的ajax响应我想隐藏/显示一列并相应地调整其他列宽度(它们都是固定大小)。有没有办法通过API实现这一目标?

我环顾了所有文档,但似乎无法实现。

1 个答案:

答案 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;"