欄位優先順序

Responsive 會自動隱藏表格中的欄位,使表格水平適合指定的空間。這表示可以撰寫一個 HTML 表格,並在不修改表格的情況下,在桌面、平板電腦和行動裝置網頁上都能良好顯示。

當 Responsive 從顯示畫面移除欄位時,預設會從右到左移除(即最右邊的欄位會先被移除)。儘管這是預設行為,您可能會希望為欄位指定自己的欄位可見性優先順序,告訴 Responsive 應該先移除哪些欄位。如果最右邊的欄位包含動作按鈕(編輯/刪除)或包含特別重要的資訊,這會特別有用。

可以在 Responsive 表格中透過以下方式指定欄位的可見性優先順序:

優先順序

Responsive 中的優先順序是一個數值,數值越小表示優先順序越高。例如,優先順序為 2 的欄位會先從顯示畫面移除,然後才會移除優先順序為 1 的欄位。

欄位會自動指定優先順序值 10,000,除非另行設定,否則會使用此值。如果多個欄位共用相同的優先順序值,則最右邊的欄位會先被移除。

設定選項

可以使用 columns.responsivePriority 選項來設定優先順序,此選項可以在 DataTables 設定的 columnscolumnDefs 陣列中定義。請考慮以下設定:

$('#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,其他所有欄位則為預設優先順序。