排列顺序()
获取/设置表格的排序。
描述
本方法提供 API 环境下 DataTables 所应用排序的信息和控制。
列排序输入参数格式由 DataTables.Order
定义,它可接受表头索引对象、表头名称对象或元组来定义要应用的排序。也可以使用这些选项的数组来定义多列排序。
返回格式为 2D 数组
[
[ colIdx_1, orderingDirection_1 ],
[ colIdx_2, orderingDirection_2 ],
...,
[ colIdx_n, orderingDirection_n ]
]
其中 colIdx_x
是用于执行排序的数据表数据索引,orderingDirection_n
是排序方向(desc
(降序)或 asc
(升序)) - 请注意,这些必须是小写。列索引以 0 为基础 - 即表中的第一列索引为 0
,第二列索引为 1
,依此类推。
使用这种格式,DataTables 可以实现单列排序(即仅使用顶层数组的一个条目),或对第 n 列进行多列排序(数组中的多个条目)。
请注意,此方法设置了要应用于表格的排序 - 实际上并不会执行排序。为了执行排序,请使用 draw()
方法,它可以简单地作为 order()
方法的返回对象的链式方法调用 - 例如 table.order([0, 'desc']).draw();
。
类型
函数 order()
- 描述
获取表格的当前排序。如果 API 环境中有多个表格,则将返回第一个表格的排序。如果您需要 API 环境中其他表格的排序,请使用
table()
。- 返回
包含当前应用排序信息的数组(元组),格式为
[columnIndex, direction]
。有关更多信息,请参见下方和DataTable.Order
的返回类型。
函数 order( order [, ...] )
- 描述
使用一维排序数组设置要应用于表格的排序。请注意,这实际上并没有执行排序,而只是排队等候执行 - 使用
draw()
执行排序。- 参数
名称 类型 是否可选 1 order
否 描述要应用排序的数组(元组)或对象。
2 ...
是 - 默认值 与第一个参数相同格式的附加数组/对象,允许多列排序。可根据需要添加任意数量的附加数组作为附加参数。
- 返回
DataTables API 实例
function order( order )
- 描述
使用 2D 顺序数组设置要应用于表格的顺序。请注意,这不会实际执行顺序,而只是将其排队——使用
draw()
来执行顺序。- 参数
名称 类型 是否可选 1 order
否 与上述此方法的 1D 选项相同格式的数组,但在顶级数组中有多个条目,允许定义多列排序。
- 返回
DataTables API 实例
示例
获取表的当前顺序
var table = new DataTable('#example');
var order = table.order();
alert('Column ' + order[0][0] + ' is the ordering column');
使用元组设置顺序
var table = new DataTable('#example');
// Sort by column index 1 and then re-draw
table.order([1, 'asc']).draw();
使用基于索引的对象设置顺序
var table = new DataTable('#example');
// Sort by column index 1 and then re-draw
table
.order({
idx: 1,
dir: 'asc'
})
.draw();
使用多个元组设置顺序,以实现多列排序
var table = new DataTable('#example');
// Sort by column indexes 1 and 2 and redraw
table.order([1, 'asc'], [2, 'asc']).draw();
使用列名称进行多列排序
var table = new DataTable('#myTable', {
columns: [
{ name: 'first_name' },
{ name: 'last_name' },
{ name: 'position' },
{ name: 'city' }
]
});
table
.order([
{ name: 'first_name', dir: 'asc' },
{ name: 'last_name', dir: 'asc' }
])
.draw();
其他
以下选项直接相关,在应用程序开发中也可能有用。