Flex DropDownList LabelFunction Issue - PullRequest
       17

Flex DropDownList LabelFunction Issue

0 голосов
/ 19 октября 2010

У меня есть раскрывающийся список:

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

Теперь refPatientResponseLists возвращает 3 строки данных, и мне нужно отобразить 3 значения в раскрывающемся списке.Итак, у меня есть функция метки:

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

Но в раскрывающемся списке отображается только 1 значение.Таким образом, он возвращает что-то вроде:

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

Как я могу получить все 3 значения в раскрывающемся списке.Надеюсь, мой вопрос понятен и я ожидаю ответа.

Спасибо

Harish

Структура объекта из журналов:

(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

Ответы [ 2 ]

0 голосов
/ 22 октября 2010

Хорошо, я смог решить это, используя

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

Может быть полезно для тех, у кого есть похожие проблемы:)

0 голосов
/ 19 октября 2010

Мне неясно, заключается ли ваша проблема в том, что в вашем раскрывающемся списке есть только один элемент или что все элементы в раскрывающемся списке отображают один и тот же текст;но я написал этот ответ, предполагая, что первый.

Вы работали в режиме отладки?Сколько раз вызывается функция labelFunction?Я думаю, что labelFunction в этом случае - красная сельдь.Если список показывает только один элемент, он, скорее всего, потому, что он считает, что dataProvider имеет только один элемент.

Функция labelFunction должна вызываться 3 раза, если у вас есть dataProvider с тремя элементами.Он вызывается один раз для каждого элемента.

Как правило, мой опыт связывания наиболее последовательн, если я не связываюсь с несколькими объектами.Итак, вам это будет хорошо:

model.referenceList

или это

referenceList.refPatientResponseLists

Но я не ожидаю, что это сработает:У меня вопрос: уверены ли вы, что три элемента возвращаются в dataProvider?Вы уверены, что компонент знает, что в вашем dataProvider есть три элемента (AKA Binding правильно обновляется)?

Не зная структуру вашего объекта, сложно отладить функцию labelFunction, но вам не нужно использовать функцию getItemIndex.

...