Javascript 通过API动态更改datatables列宽

Javascript 通过API动态更改datatables列宽,javascript,jquery,datatables,Javascript,Jquery,Datatables,我知道我们可以通过这个选项设置数据表的列宽。但是现在我想在xhr事件上更改该选项 根据从服务器得到的ajax响应,我想隐藏/显示一列,并相应地调整其他列的宽度(它们都是固定大小)。有没有办法通过API实现这一点 我查看了所有文档,但似乎无法实现。一旦初始化数据表,就无法更改设置。但是如果您使用的是column.width,并且关闭了autoWidth,那么每列的宽度都很容易更改。以下是一个例子: var table = $('#example').DataTable({ autoWidth

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

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


我查看了所有文档,但似乎无法实现。

一旦初始化数据表,就无法更改设置。但是如果您使用的是
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');
})
演示->


这是因为
column.width
作为
style=“width:xxx;”“

被注入到每个
中,您是在ajax响应之后加载数据表,还是已经加载了数据表,并且希望在ajax响应之后隐藏/显示一列并更改其他列的宽度大小?我是在数据表本身的xhr事件上这样做的。基本上,我想在从服务器检索完所有数据后进行更改。我认为这很容易。你可以通过if-else条件进行检查。如果是foo,则显示/隐藏栏并更改其他列的宽度。