数据表数据优先级/列优先级

时间:2015-12-10 23:01:18

标签: javascript jquery datatables

我正在使用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>

1 个答案:

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