{hero}

DataTables.排序

DataTables 排序对象。

说明

可以用 orderorder() 方法来设置 DataTables 中的排序。两者都能接受各种输入形式,选择最容易使用的形式取决于 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 执行排序操作时,其他形式会被转换为元组数组。