我有一些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。这些相同的列定义似乎在我的应用程序中的其他表上运行良好。我觉得我错过了一些简单的东西!
从 datatables.net 的论坛帖子中,通过以下方式禁用"自动宽度"功能:
$(document).ready( function () {
$('#example').dataTable( {
"bAutoWidth": false
} );
} );
参考资料: legacy.datatables.net: