列优先级

响应式将会自动隐藏表格中的列,以使表格水平适合于给定的空间。这意味着可以编写一个 HTML 表格,并且将其以美观的形式显示在台式机、平板电脑和移动网页上,而无需修改表格。

当响应式从显示中移除列时,它会从右到左这样做(即首先移除最右边的列)。虽然这是默认行为,但你可能希望将你自己的列可见优先级分配给列,告诉 Responsive 在其他列之前移除哪些列。例如,如果最右边的列包含操作按钮(编辑/删除)或包含特别重要的信息,这可能会特别有用。

可以以下方式分配响应式表格中列的可见优先级

优先级顺序

响应式中的优先级顺序是一个数字值,其中较低的值等于较高的优先级。例如,优先级为 2 的列将在显示中优先于优先级为 1 的列移除。

列自动分配优先级值为 10,000,除非另有配置,否则使用该值。如果多列共享相同的优先级值,则最右边的列将最先被移除。

配置选项

可以使用 columns.responsivePriority 选项设置优先级顺序,该选项可以定义在 columnscolumnDefs DataTables 配置数组中。考虑以下事项

$('#myTable').DataTable( {
    responsive: true,
    columnDefs: [
        { responsivePriority: 1, targets: 0 },
        { responsivePriority: 2, targets: -1 }
    ]
} );

此处,最左边的列(target:0)被分配了 1 的优先级,而最右边的列(target:-1)被分配了 2 的优先级。表中的所有其他列都将使用默认优先级 10,000,因此将在这两个列之前被移除。随着表格变窄,最终只会显示第一列。

优先级数据属性

还可以使用 HTML 中的 data-* 属性分配优先级。这是一种在 HTML 和 Javascript 之间传递信息的特别方便的方法,因为无需指定额外的配置选项。只需向列标题单元格添加 data-priority 属性,其值表示要为该列分配的优先级。

考虑以下表格

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

这完全匹配上面给出的 Javascript 示例 - 最左边的列优先级为 1,最右边的优先级为 2,所有其他列的默认优先级。