Flex DropDownList labelFunction Edizione
-
09-10-2019 - |
Domanda
Ho un elenco a discesa come:
<s:DropDownList id="cad" width="100%" dataProvider="{model.referenceList.refPatientResponseLists}"
labelFunction="myFunction" selectedIndex="{model.cd.code}"/>
Ora i refPatientResponseLists restituisce 3 righe di dati e ho bisogno per visualizzare i 3 valori nella DropDownList. Così ho la funzione di etichette come:
public function myFunction(item:Object):String {
return item['refPatientResponses'] [cad.dataProvider.getItemIndex(item)]['responseDesc']+'';
}
Ma questo viene visualizzato solo 1 valore in DropDownList. Quindi restituisce qualcosa come:
return item['refPatientResponses'] [0] ['responseDesc']+''
Come posso ottenere tutti i 3 valori nel menu a discesa. Spero che la mia domanda è comprensibile e in attesa di una risposta.
Grazie
Harish
struttura dell'oggetto dai registri:
(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
Soluzione 2
Ok sono stato in grado di risolverlo usando
Model.referenceList.refPatientResponseLists.getItemAt(0).refPatientResponses
Forse utile per gli altri che hanno problemi simili:)
Altri suggerimenti
Sono poco chiaro se il problema è che il vostro elenco a discesa ha solo un singolo elemento o che tutte le voci del menu a tendina sta visualizzando lo stesso testo; ma ho scritto questa risposta assumendo l'ex.
Hai eseguito in modalità di debug? Quante volte è l'labelFunction chiamato? Credo che il labelFunction è una falsa pista in questo caso. Se l'elenco mostra solo un singolo elemento, è più probabile perché pensa dataProvider ha solo un singolo elemento.
Il labelFunction dovrebbe essere chiamato 3 volte se si dispone di un dataProvider w / tre elementi. Si chiama una volta per ogni elemento.
In generale, la mia esperienza di legame è più costante se non mi lego in più oggetti. Quindi, questo sarebbe bene:
model.referenceList
o del presente
referenceList.refPatientResponseLists
Ma, non mi aspetto che questo lavoro:
model.referenceList.refPatientResponseLists
Quindi, la domanda che ho è sei sicuro che tre elementi vengono restituiti nel dataProvider? Sei sicuro che il componente sa che tre elementi sono in dataProvider (AKA è vincolante correttamente l'aggiornamento)?
Senza conoscere la tua struttura dell'oggetto, è difficile per eseguire il debug labelFunction, ma non dovrebbe essere necessario utilizzare la funzione getItemIndex.