Question

J'ai une liste déroulante comme:

    <s:DropDownList id="cad" width="100%" dataProvider="{model.referenceList.refPatientResponseLists}" 
labelFunction="myFunction"                              selectedIndex="{model.cd.code}"/>

Maintenant, les refPatientResponseLists retourne 3 lignes de données et je dois afficher les 3 valeurs dans le DROPDOWNLIST. J'ai donc la fonction d'étiquette:

    public function myFunction(item:Object):String {
     return item['refPatientResponses'] [cad.dataProvider.getItemIndex(item)]['responseDesc']+''; 
}

Mais cette affiche seulement 1 valeur dans le DROPDOWNLIST. Donc, il retourne quelque chose comme:

return item['refPatientResponses'] [0] ['responseDesc']+'' 

Comment puis-je obtenir tous les 3 valeurs dans le menu déroulant. Espérons que ma question est compréhensible et attend une réponse.

Merci

Harish

structure de l'objet à partir des journaux:

(Typed Object #1 'datacollection.model.ReferenceList')
    (Array #3)
    refPatientResponseLists = (Externalizable Object #4 'flex.messaging.io.ArrayCollection')
      (Array #5)
        [0] = (Typed Object #6 'datacollection.model.RefPatientResponseList')
          refPatientResponses = (Externalizable Object #7 'flex.messaging.io.ArrayCollection')
            (Array #8)
              [0] = (Typed Object #9 'datacollection.model.RefPatientResponse')
                responseSequence = 1
                responseDesc = "No"
                responseCode = 28
                responseTypeCode = 10
              [1] = (Typed Object #10 'datacollection.model.RefPatientResponse')
                responseSequence = 2
                responseDesc = "Yes"
                responseCode = 29
                responseTypeCode = 10
              [2] = (Typed Object #11 'datacollection.model.RefPatientResponse')
                responseSequence = 3
                responseDesc = "Claim Not Found"
                responseCode = 30
                responseTypeCode = 10
Était-ce utile?

La solution 2

Ok j'ai pu le résoudre en utilisant

Model.referenceList.refPatientResponseLists.getItemAt(0).refPatientResponses

Peut-être utiles pour d'autres qui ont des problèmes similaires:)

Autres conseils

Je ne suis pas clair si votre problème est que votre liste déroulante n'a qu'un seul élément ou que tous les éléments dans la liste déroulante sont affiche le même texte; mais je l'ai écrit cette réponse supposant que l'ancien.

Avez-vous exécuté en mode débogage? Combien de fois est le labelFunction appelé? Je pense que le labelFunction est un hareng rouge dans ce cas. Si la liste ne montre qu'un seul élément, il est fort probable parce qu'il pense que le fournisseur de données n'a qu'un seul élément.

Le labelFunction devrait être appelé 3 fois si vous avez un dataProvider w / trois éléments. Il est appelé une fois pour chaque élément.

En général, mon expérience de liaison est plus cohérente si je ne lie pas en plusieurs objets. Donc, vous ce serait correct:

model.referenceList

ou ce

referenceList.refPatientResponseLists

Mais, je ne serais pas attendre à ce que le travail:

model.referenceList.refPatientResponseLists

Alors, la question que j'ai est vous êtes sûr que trois éléments sont retournés dans le fournisseur de données? Etes-vous sûr que le composant sait que trois articles sont dans votre fournisseur de données (mise à jour AKA Binding correctement)?

Sans connaître la structure de votre objet, il est difficile de déboguer votre labelFunction, mais vous ne devriez pas avoir besoin d'utiliser la fonction getItemIndex.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top