{hero}

DataTables.Order

DataTables 排序物件。

描述

DataTables 中的排序可以使用 orderorder() 方法設定。兩者都可以接受各種形式的輸入,選擇哪種最容易使用取決於您的 DataTable 的配置。

使用 Typescript 定義,排序類型定義為

interface OrderIdx {
    idx: number;
    dir: 'asc' | 'desc';
}

interface OrderName {
    name: string;
    dir: 'asc' | 'desc';
}

type OrderArray = [number, 'asc' | 'desc'];

type OrderCombined = OrderIdx | OrderName | OrderArray;

type Order = OrderCombined | OrderCombined[];

屬性

物件 - 基於索引

在這種情況下,排序被定義為一個具有 idx(欄索引)和 dir(方向)屬性的物件,以定義表格應該按哪個欄排序。例如

{
    idx: 1,
    dir: 'asc'
}

物件 - 基於名稱

基於名稱的排序與基於索引的排序相同,但使用 columns.name 定義的欄名稱來識別欄。如果您有大量的欄,或者它們可以根據使用者輸入而改變,這會特別有用。

{
    name: 'first_name',
    dir: 'desc'
}

單維陣列(元組)

在此形式中,使用兩個元素的陣列來定義要應用於表格的排序。陣列中的第一個元素是欄索引,第二個元素是方向。以下內容與物件 - 基於索引的範例相符,但使用陣列語法

[
    1,
    'asc'
]

二維陣列

多欄排序是通過提供上述選項的陣列來定義的。如果願意,您可以混合類型(雖然這相對不常見,但可能會有點混淆!)

[
    { idx: 1, 'asc' },
    { idx: 2, 'desc' }
]

傳回類型

請注意,order() 方法將始終傳回包含欄索引和方向的單維陣列(元組)的陣列。這是 DataTables 內部使用的表示形式,當 DataTables 執行排序操作時,其他形式會轉換為元組陣列。