2013-05-15 4 views
2

J'ai regroupé les données en dataSource comme:Tri personnalisé dans la grille KendoUI/source de données

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" } 
    ] 
    } 
}); 

Maintenant, je veux trier le groupe selon le domaine autre que le champ spécifié ici. Comment cela pourrait-il être réalisé? Ou comment puis-je désactiver ou remplacer le comportement de tri par défaut de "dir" en tant que croissant.

+0

Vous devez définir 'serverSorting: true' sur la source de données et implémenter le tri sur le serveur. – Brett

Répondre

1

Il existe un moyen non documenté de spécifier une fonction de tri personnalisée qui vous permettra de trier les propriétés/propriétés exposées par votre objet.

$("#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 
}); 

La fonction de comparaison doit retourner un nombre négatif si elle est inférieure à droite, 0 si elles sont égales, et un nombre positif si gauche est supérieur à droite.