无法在动态生成的表上设置DataTables列宽

时间:2017-03-29 18:09:31

标签: jquery datatables

我有一些jquery发布一些数据,将列表作为JSON响应获取,并根据列表数据构建数据表。一切都运作良好,但我有一个看似简单的问题: 我不能让我的表声明中的列宽保持不变。

我的代码看起来像这样:

//some magic happens and I get a result like this
json_result = ['eggs', 'bananas', 'purple']

//declare the table
var result_table = $( table_selector )
table = result_table.DataTable({
              //set two different width columns
              columnDefs: [
                     { "width": "10%", "targets": 0 },
                     { "width": "90%", "targets": 1 }
                    ]
          });

//build the table rows based on result
for (i=0, i<json_result.length, i++){
    var new_row = '<tr><td><input type="checkbox"></td><td>' +json_result[i] + '</td></tr>'
    table.row.add(new_row).draw();
   }

// table.columns.adjust().draw(); <-- tried this to no avail
table.draw();

结果是一个非常好的桌子,非常适合它的容器......但是柱子的宽度是50/50。这些相同的列defs似乎在我的应用程序中的其他表上正常工作。我觉得我错过了一些简单的东西!

1 个答案:

答案 0 :(得分:2)

从论坛帖子datatables.net,禁用&#34;自动宽度&#34;功能通过:

$(document).ready( function () {
  $('#example').dataTable( {
    "bAutoWidth": false
  } );
} );

参考:legacy.datatables.net