我正在使用带有分层数据的DataTables库 . 我希望做的是让组始终以相同的顺序出现,并且列排序仅适用于组内 .
例如,使用下表:
GROUP FOOD
===================
fruit banana
fruit pear
fruit apple
meat steak
meat chicken
meat pork
vegetable zucchini
vegetable broccoli
vegetable tomato
当用户单击“食物”列时,它应按升序排序如下:
GROUP FOOD ▲
===================
fruit apple
fruit banana
fruit pear
meat chicken
meat pork
meat steak
vegetable broccoli
vegetable tomato
vegetable zucchini
当用户再次单击“food”列时,它应按如下顺序排序:
GROUP FOOD ▼
===================
fruit pear
fruit banana
fruit apple
meat steak
meat pork
meat chicken
vegetable zucchini
vegetable tomato
vegetable broccoli
但是,实际行为是它也会反转组的顺序:
GROUP FOOD ▼
===================
vegetable zucchini
vegetable tomato
vegetable broccoli
meat steak
meat pork
meat chicken
fruit pear
fruit banana
fruit apple
This example显示了如何编写自定义排序函数;但是,如果列正在对ASC或DESC进行排序,则无法从函数内部了解 . What is the best way to specify a different sort function for ASC vs. DESC order on a given column?
3 回答
通常使用这些类型的表,您可以指定排序函数,并将返回值从1切换为-1将更改排序 . 例如:
在一个方向排序,和
在另一个中排序 .
经过大量的挖掘,我设法找到了当前排序方向的位置,在
column.context[0].aaSorting[0][1]
下 .aaSorting
变量是一个数组数组,其底层包含当前排序列(作为整数)和排序方向(作为字符串;asc
或desc
) .由于我的其他答案更符合原始问题,我会离开它,但事实证明我问的是错误的问题 . DataTables允许您在排序之前强制按特定列排序 .