сортирует строки в DataTable
by | string|object | название поля, по которому будут отсортированы данные |
dir | string | направление сортировки, по умолчанию "asc" (по возрастанию) |
as | string | тип данных, по умолчанию "string" |
data.sort("price", "asc");
Метод sort можно вызывать с разными параметрами.
Чаще всего метод sort вызывают для того, чтобы отсортировать колонку по возрастанию или убыванию (или в прямом или обратном алфавитном порядке). Например:
// по колонке name, в алфавитном порядке
data.sort("#name#","asc","string");
// по колонке price; по убыванию
data.sort("#price#","desc","int");
Имя колонки нужно заключить в #.
Вместо указания типа данных (третий параметр) вы можете задать свою функцию для сортировки. The parameters of this function are the following:
function sort_by_length(data1, data2, prop){
return data1[prop].length > data2[prop].length ? 1 : -1;
}
data.sort("#name#", "asc", sort_by_length);
Функция должна вернуть 0, 1 или -1.
Чтобы сравнивать объекты сразу по нескольким полям, вам нужно определить функцию и передать ее первым параметром:
function my_sorting(a, b, id){
//a, b - объекты данных, id - id столбца, из которого была вызвана сортировка
return a.Version > b.Version && a.Year > b.Year ? 1 : -1;
}
data.sort(my_sorting, "desc"); // 3-ий параметр уже передавать не нужно
Вместо трех параметров методу можно передать объект с теми же свойствами:
data.sort({
as:"string",
dir:"desc",
by:"package" // имя поля
});
Второй параметр - направление сортировки - может принимать следующие значения:
Третий параметр определяет тип данных в поле, которое нужно отсортировать (от него зависит, какая функция сортировки будет вызываться):