sort

сортирует строки в DataTable

void sort(string|object by, [string dir,string as] );
bystring|objectназвание поля, по которому будут отсортированы данные
dirstringнаправление сортировки, по умолчанию "asc" (по возрастанию)
asstringтип данных, по умолчанию "string"

Example

data.sort("price", "asc");

Related samples

Details

Примеры

Метод sort можно вызывать с разными параметрами.

Чаще всего метод sort вызывают для того, чтобы отсортировать колонку по возрастанию или убыванию (или в прямом или обратном алфавитном порядке). Например:

// по колонке name, в алфавитном порядке
data.sort("#name#","asc","string");
// по колонке price; по убыванию
data.sort("#price#","desc","int");

Имя колонки нужно заключить в #.

Вместо указания типа данных (третий параметр) вы можете задать свою функцию для сортировки. The parameters of this function are the following:

  • a (object) - the first data item
  • b (object) - the second data item
  • prop(string) - the name of the field that you want to sort by.
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.

  • 1 - если первое значение больше второго;
  • -1 - если первое значение меньше второго;
  • 0 - если они равны.

Чтобы сравнивать объекты сразу по нескольким полям, вам нужно определить функцию и передать ее первым параметром:

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" // имя поля
});

Направления сортировки

Второй параметр - направление сортировки - может принимать следующие значения:

  • "asc" - по возрастанию / в прямом алфавитном порядке
  • "desc" - по убыванию / в обратном алфавитном порядке

Типы данных

Третий параметр определяет тип данных в поле, которое нужно отсортировать (от него зависит, какая функция сортировки будет вызываться):

  • int - сравнение чисел;
  • date - сравнение дат;
  • string - сравнение строк;
  • string_strict - сравнение строк с учетом регистра;
  • text - сравнение реального текста из ячеек (включая все, что вернет template: напр. html-теги);
  • server - серверная сортировка (отправляет на сервер запрос);
  • raw - простое сравнение (a>b и наоборот);
  • вы можете определить свою функцию.
See also
Наверх
If you have not checked yet, be sure to visit site of our main product Webix ui library and page of javascript data grid product.