我正在使用Datatables用于我的网络应用并使用响应式扩展程序,当屏幕变小时会自动折叠我的表格列,并且还有一个名为列优先级的功能会使某些列不会折叠/将是最后一个如果屏幕变小将崩溃。
我可以使用
从javascript端开始工作$('#myTable').DataTable( {
responsive: true,
columnDefs: [
{ responsivePriority: 1, targets: 0 },
{ responsivePriority: 2, targets: -1 }
]
} );
但是这个方法有一点缺点,因为我在每个页面中有不同类型的数据表,这些数据表具有不同的列,我希望它保留并且不会折叠,所以我无法真正使用该代码,谢天谢地添加
是一种更好的方法data-priority="value"
进入<th>
标签,但在我尝试不工作后,它仍然会折叠我已经给出数据优先级的列,有人知道为什么吗?
<table id="example" class="display nowrap" width="100%">
<thead>
<tr>
<th data-priority="1">First name</th>
<th>Last name</th>
<th>Position</th>
<th>Office</th>
<th>Age</th>
<th>Start date</th>
<th>Salary</th>
<th>E-mail</th>
<th data-priority="2">Extn.</th>
</tr>
</thead>
<tbody>
...
</tbody>
</table>
答案 0 :(得分:0)
你可以在Jquery
中使用这个技巧var columnDefs = [];
$datatable.find('th').each(function (i, el) {
var $el = $(el);
if ($el.is('[data-priority]')) {
var defs = { responsivePriority: $el.data('priority'), targets: i};
columnDefs.push(defs);
}
})
然后在Datatable初始化中使用columnDefs