2010-02-26 5 views
0

Lorsque j'exécute l'application Flex, je m'attends à voir 25 enregistrements de la table des utilisateurs de ma base de données dans un composant liste, et tout ce que j'en vois est 25: [objet Utilisateur]les données ne sont pas exposées dans Flash Builder

J'ai essayé de suivre ce tutoriel: http://www.adobe.com/devnet/flashcatalyst/articles/building_datacentric_app_flashcast_flashbuilder_03.html mais comme il utilise ColdFusion, j'utilise un type de service HTTP. Au fond, ce que je faisais:

  1. Se connecter au service de données (Http)
  2. est entré dans une url de données XML, la méthode GET, le fonctionnement de getAllItems
  3. recherche en tant que chaîne de nom comme type de données pour les paramètres de cette opération
  4. utilisateurs en tant que nom de service (services.users comme forfait de service)
  5. de fonctionnement de test (authentification requise) et cliqués test, qui a montré les données xml
  6. Configurer le type de retour, l'utilisateur sélectionné en tant que root (non utilisateurs), et cliqué dessus pour "est Array?" Option
  7. ensuite sélectionné la composante de la liste, cochez « Nouvel appel de service », et bind_to_field j'ai vérifié « id » (ne sais pas exactement ce qui se lient au champ ne)

Ce qui suit est la substance pertinente qui a été généré :

  protected function list_creationCompleteHandler(event:FlexEvent):void 
     { 
      getAllItemsResult.token = users.getAllItems(/*Enter value(s) for */ search); 
     } 

    <fx:Declarations> 
    <s:CallResponder id="getAllItemsResult" /> 
    <users:Users id="users" fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)" showBusyCursor="true"/> 
</fx:Declarations> 

      <s:List skinClass="components.DataList3" x="65" y="96" change="list_changeHandler()" id="list" creationComplete="list_creationCompleteHandler(event)" dataProvider="{getAllItemsResult.lastResult}" labelField="id"> 
     </s:List> 

Je remarque un message d'erreur indiquant "accès de recherche de propriété indéfinie". Mais encore une fois ce code a été généré, donc je ne sais pas où il était censé être défini. Ma principale préoccupation est qu'il ne montre pas les enregistrements de la base de données (via le xml), mais plutôt de montrer: [objet utilisateur]

Merci pour vos suggestions.

Répondre

1

Ce que vous voyez est l'impl implicite de Object.toString() qui indique le type de l'objet affiché. Il semble que les données soient bien chargées, vous n'avez simplement pas configuré la liste pour l'afficher correctement. Je vois que vous spécifiez une valeur labelField de "id" mais peut-être que cette propriété n'existe pas réellement sur les objets retournés? Vous pouvez essayer une autre valeur pour labelField.

+0

Peu importe ce que je modifie la valeur labelField à partir de la liste d'options disponibles, la même chose se produit. – JohnMerlino

+0

Utilisez-vous Flash Builder? Si c'est le cas, vous devez supprimer un point d'arrêt sur le setter pour List.dataProvider et examiner les données en cours de définition. –

+0

Oui, le problème était les données XML. – JohnMerlino

Questions connexes