Edición Flex DropDownList labelFunction
-
09-10-2019 - |
Pregunta
Tengo una lista desplegable como:
<s:DropDownList id="cad" width="100%" dataProvider="{model.referenceList.refPatientResponseLists}"
labelFunction="myFunction" selectedIndex="{model.cd.code}"/>
Ahora los refPatientResponseLists devuelve 3 filas de datos y necesito para mostrar los 3 valores en la lista desplegable. Así que tengo la función de etiqueta como:
public function myFunction(item:Object):String {
return item['refPatientResponses'] [cad.dataProvider.getItemIndex(item)]['responseDesc']+'';
}
Pero esta muestra sólo 1 de valor en la lista desplegable. De modo que devuelve algo como:
return item['refPatientResponses'] [0] ['responseDesc']+''
¿Cómo puedo obtener todos los 3 valores en la lista desplegable. Espero que mi pregunta es comprensible y esperando una respuesta.
Gracias
Harish
estructura del objeto a partir de los registros:
(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
Solución 2
Está bien que era capaz de resolverlo utilizando
Model.referenceList.refPatientResponseLists.getItemAt(0).refPatientResponses
Tal vez útil para otras personas que tienen problemas similares:)
Otros consejos
Estoy claro si su problema es que su lista desplegable sólo tiene un solo elemento o que todos los elementos de la lista desplegable está mostrando el mismo texto; pero escribí esta respuesta asumiendo el primero.
¿Lo ejecuta en modo de depuración? ¿Cuántas veces se llama el labelFunction? Creo que el labelFunction es una pista falsa en este caso. Si la lista sólo muestra un único elemento, lo más probable, ya que piensa dataProvider sólo tiene un único elemento.
El labelFunction debe ser llamado 3 veces si tiene un dataProvider w / tres elementos. Se llama una vez para cada elemento.
En general, mi experiencia de unión es más consistente si no se unen en múltiples objetos. Por lo tanto, esto estaría bien:
model.referenceList
o este
referenceList.refPatientResponseLists
Sin embargo, yo no esperaría que esto funcione:
model.referenceList.refPatientResponseLists
Entonces, la pregunta que tengo es ¿está seguro de que los tres productos son devueltos en el dataProvider? ¿Seguro que el componente sabe que tres elementos están en su dataProvider (AKA es vinculante adecuadamente actualizar)?
Sin conocer la estructura de su objeto, es difícil de depurar su labelFunction, pero que no es necesario utilizar la función getItemIndex.