2017-09-14 3 views
0

J'utilise la grille AngularJs Kendo et je lie un tableau de données local qui est le résultat de la demande de service. Le comportement de tri de la grille fonctionne correctement, mais lorsque certaines nouvelles données ajoutées au tableau sont reflétées dans la grille, le tri échoue. J'ai essayé un échantillon dans plunker ainsi que dans dojo.telerik.com, le comportement attendu fonctionne bien. Je ne sais pas quelle est l'erreur.Le tri ne fonctionne pas correctement dans le gird lié aux données locales de Kendo en utilisant AngularJS

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <meta charset="utf-8"/> 
 
    <title>Kendo UI</title> 
 

 
    <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2015.3.930/styles/kendo.common.min.css"/> 
 
    <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2015.3.930/styles/kendo.rtl.min.css"/> 
 
    <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2015.3.930/styles/kendo.silver.min.css"/> 
 
    <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2015.3.930/styles/kendo.mobile.all.min.css"/> 
 

 
    <script src="https://code.jquery.com/jquery-1.9.1.min.js"></script> 
 
    <script src="https://kendo.cdn.telerik.com/2017.2.621/js/angular.min.js"></script> 
 
    <script src="https://kendo.cdn.telerik.com/2016.3.1118/js/kendo.all.min.js"></script> 
 
</head> 
 
<body> 
 
    
 
<div ng-app="app" ng-controller="MyCtrl"> 
 
    <div kendo-grid="grid" 
 
     k-data-source="gridData" 
 
     k-columns="gridColumns" 
 
     k-sortable="true"></div> 
 

 
    <button kendo-button ng-click="update()"> 
 
     Update 
 
    </button> 
 
</div> 
 
<script> 
 
angular.module("app", ["kendo.directives"]).controller("MyCtrl", function($scope) { 
 
    $scope.gridData = [ 
 
    { artist: "Pink Floyd", track: "The dark side of the Moon" }, 
 
    { artist: "The Beatles", track: "I've just seen a face" }, 
 
    { artist: "Queen", track: "Innuendo" } 
 
    ]; 
 
    
 
    $scope.gridColumns = [ 
 
    { field: "artist", title: "Artist" }, 
 
    { field: "track", title: "Track" } 
 
    ]; 
 
    
 
    $scope.update = function() { 
 
    $scope.gridData.push({ 
 
    \t artist: "Prabha", track: "ABCDEFGHIJKL" 
 
    }); 
 
    $scope.grid.dataSource.read(); 
 
    }; 
 
}); 
 
</script> 
 
</body> 
 
</html>

+0

Votre exemple de code fonctionne très bien, ce qui est le problème avec il? – lin

+0

Cela fonctionne très bien en dehors de l'application, mais quand j'essaie d'intégrer le même dans mon application, il échoue – Prabhakaran

+0

Eh bien m8, que vous pouvez nous montrer un exemple de votre implémentation au lieu d'un exemple de travail? – lin

Répondre

1

Pouvez-vous s'il vous plaît ajouter le type: "string" dans le tableau $ scope.gridColumns et vérifier. Voici l'exemple.

$scope.gridColumns = [ 
{ field: "artist", title: "Artist",type:"string" }, 
{ field: "track", title: "Track",type:"string" }]; 
1

Se référer here - Le « k-type » est ignorée car il n'y a pas de « genre » comme DropDownList ne dispose pas d'une option de configuration « de tri »