2012-11-06 5 views
2

J'ai réussi à charger des données à partir d'un service Web Json distant dans un ListView QML, mais il ne semble pas y avoir une telle chose pour le contrôle DropDown.BlackBerry 10 Cascades: Comment charger des données dans un DropDown?

Est-ce que quelqu'un a un exemple ou une méthode alternative pour accomplir un DropDown lié aux sources de données attachedObjects dans Cascades?

Répondre

8

J'ai une autre méthode pour vous, notez que j'ai utilisé le service Web de google ici à des fins de démonstration, vous devez le remplacer par votre réponse d'analyse d'url & selon cela.

import bb.cascades 1.0 

Page { 
    attachedObjects: [ 
     ComponentDefinition { 
      id: optionControlDefinition 
      Option { 
      } 
     } 
    ] 
    function getData() { 
     var request = new XMLHttpRequest() 
     request.onreadystatechange = function() { 
      if (request.readyState == 4) { 
       var response = request.responseText 
       response = JSON.parse(response) 
       var addressComponents = response.results[0].address_components 
       for (var i = 0; i < addressComponents.length; i ++) { 
        var option = optionControlDefinition.createObject(); 
        option.text = addressComponents[i].long_name 
        dropDown.add(option) 
       } 
      } 
     } 

     // I have used goole's web service url, you can replace with your url 
     request.open("GET", "http://maps.googleapis.com/maps/api/geocode/json?address=" + "Ahmedabad" + "&sensor=false", true) 
     request.send() 
    } 
    Container { 
     DropDown { 
      id: dropDown 
     } 
     Button { 
      onClicked: getData() 
     } 
    } 
} 

Espérons que cela aide.

+0

Son fonctionnement, renvoyant la bonne quantité de valeurs, mais en essayant d'accéder aux champs de mes objets json renvoie undefined. Je ne sais pas comment le déboguer. Je suis assez perdu dans ce développement pour être honnête. – Tjaart

+0

J'ai utilisé un DataSource mais la partie importante était ComponentDefinition. Merci! – Tjaart

+0

Salut, comment obtenir les valeurs de ce dropDown et passer à mon URL de service Web.? – Vendetta

Questions connexes