2013-02-21 6 views
0

Je suis tout à fait nouveau à kendoUI et json, mon problème est qu'il semble que les données ne se chargent pas, peut-être schéma incorrect ou quelque chose, n'obtiennent pas d'erreurs, juste le chargement de la combobox tout le temps. Voici mon exemple de code:KendoUI et json

$(document).ready(function() { 
    clientDS = new kendo.data.DataSource({ 
     transport: { 
      read: { 
       url: "http://localhost/JSON_MP.asmx/GetListCountries?developerId=101&developerHash=9df7273b410761f74331bde746e5c2354b73b487&timestamp=1242207092430", //Note the URL path! 
       dataType: "json", 
       contentType: "application/json; charset=utf-8" 

      } 
     }, 
     schema: { 
      data: "listValues"    
     } 
    }); 

    $("#kendoCboClient").kendoComboBox({ 
     placeholder: "Select a Country...", 
     dataTextField: "name", 
     dataValueField: "id", 
     dataSource: clientDS 
    }); 
}); 

et mes données pile:

{ "errorString": "ok", "errorCode": 0, "listValues": [{ "name": "UNKNOWN "," id ": 1}, {" name ":" Afrique du Sud "," id ": 2}, {" name ":" Mozambique "," id ": 3}, {" name ":" Philippines " , "id": 4}, {"name": "Namibie", "id": 5}, {"name": "Emirats Arabes Unis", "id": 6}, {"name": "England" , "id": 7}, {"name": "Swaziland", "id": 8}, {"name": "Portugal", "id": 9}, {"name": "Grèce", " id ": 10}, {" name ":" Maurice "," id ": 11}, {" name ":" TANZANIE "," id ": 12}, {" name ":" Botswana "," id " : 13}, {"name": "Espagne", "id": 15}, {"name": "Scottland", "id": 16}, {"name": "Australie", "id": 17 }, {"name": "Nouvelle-Zélande", "id": 18}, {"name": "Chypre", "id": 19}, {"name": "États-Unis", "id": 20}, {"name": "Allemagne", "id": 21}, {"name": "", "id": 22}, {"name": "Madagascar", "id": 23}, {"name": "Malaysia", "id": 24}, {"name": "Seychelles", "id": 25}], "listType": "Pays"}

Si quelqu'un peut simplement pointer Dans la pile de données, j'utilise des objets "listValues", peut-être parce que "" errorString " ?

+0

Utilisez le rappel 'schema.parse' pour voir quelle réponse' DataSource' reçoit, et essayez de retourner 'report.listValues' à partir de là d'utiliser 'schema.data'. –

Répondre

0

J'ai eu un problème similaire - aucune donnée et aucune erreur. Le vrai problème était que la page renvoyant les données json envoyait un en-tête de type de contenu "html" au lieu de "application/json". Ce problème est actuellement traité ici: http://docs.kendoui.com/tutorials/PHP/build-apps-with-kendo-ui-and-php (faites défiler la section jusqu'à mi-chemin vers la section "Il n'y a pas de données ...") et est corrigé en vous assurant que vous envoyez l'en-tête de type de contenu correct.

2

Je viens d'essayer votre code et a parfaitement fonctionné! J'ai seulement dû changer une ligne de code: l'url puisque, bien sûr, je n'ai pas déployé le fichier dans le même chemin que vous.

a dit ...:

  1. ouverture Essayez dans votre navigateur l'url que vous avez saisi dans votre code et de vérifier qu'il retourne en fait le JSON que vous avez inclus dans votre question.
  2. Si le point précédent fonctionne correctement, si votre navigateur dispose d'outils de développement, vérifiez qu'il n'y a pas d'erreur dans la console du navigateur.
  3. Si vous ne disposez pas d'outils de développement ou ne savent pas comment les utiliser, essayez:

.

var clientDS = new kendo.data.DataSource({ 
    transport: { 
     read: function (options) { 
      $.ajax({ 
       url : "http://localhost/JSON_MP.asmx/GetListCountries?developerId=101&developerHash=9df7273b410761f74331bde746e5c2354b73b487&timestamp=1242207092430", 
       data : options.data, 
       success: function (result) { 
        alert("Good!"); 
        options.success(result); 
       }, 
       error : function (xhr, textStatus, errorThrown) { 
        alert("bad!: " + xhr.status + " - " + textStatus + " - " + errorThrown); 
       } 
      }); 
     } 
    }, 
    schema : { 
     data : "listValues" 
    } 
}); 
$("#kendoCboClient").kendoComboBox({ 
    placeholder : "Select a Country...", 
    dataTextField : "name", 
    dataValueField: "id", 
    dataSource : clientDS 
}); 

Et si erreur alerte apparaît et vous donne quelques informations.

0

Dans mon cas, j'avais ceci: Mon fichier html de test provenait du système de fichiers local, et l'objet json que je chargeais à partir de l'URL du serveur. Une fois, j'ai changé l'URL pour lire à partir du système de fichiers local, il a résolu le problème