Пользовательская сортировка в сетке/источнике данных KendoUI

Я сгруппировал данные в dataSource как:

var dataSource = new kendo.data.DataSource({
  transport: {
    read: {
      url: " ",

    }
  },
   //and some other parameters specified   
  // group by the "category" field
   group: {
    field: "category",
    aggregates: [
      { field: "price", aggregate: "max" },
      { field: "price", aggregate: "min" }
    ]
  }
});

Теперь я хочу отсортировать группу по полю, отличному от указанного здесь. Как этого можно добиться? Или как я могу отключить или переопределить поведение сортировки по умолчанию «dir» по возрастанию.


person sandy    schedule 15.05.2013    source источник
comment
Вам нужно будет установить serverSorting: true в источнике данных и самостоятельно реализовать сортировку на сервере.   -  person Brett    schedule 23.08.2013


Ответы (1)


Существует недокументированный способ указать пользовательскую функцию сортировки, которая позволит вам сортировать по любому свойству/свойствам, предоставляемым вашим объектом.

$("#grid").kendoGrid({
    columns: [
        { 
            field: "someProperty",
            sortable: {
                compare: function (left, right) {
                    // TODO: your custom logic here (just make sure you return a number)
                    return left.someOtherProperty - right.someOtherProperty;
                }
            },
            title: "I can do custom sorting!!!"
    ],
    dataSource: { .. },
    // other grid properties here
});

Функция сравнения должна возвращать отрицательное число, если левое меньше правого, 0, если они равны, и положительное число, если левое больше правого.

person Chris Staley    schedule 15.01.2014