0

我有一个下拉列表:

    <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 个值。希望我的问题可以理解并期待答复。

谢谢

哈里什

日志中的对象结构:

(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
4

2 回答 2

0

我不清楚您的问题是您的下拉列表只有一个项目还是下拉列表中的所有项目都显示相同的文本;但我假设前者写了这个答案。

你是在调试模式下运行的吗?labelFunction 被调用了多少次?我认为 labelFunction 在这种情况下是一个红鲱鱼。如果列表只显示一个项目,很可能是因为它认为 dataProvider 只有一个项目。

如果您有一个带有三个项目的 dataProvider,则应调用 labelFunction 3 次。它为每个项目调用一次。

一般来说,如果我不绑定到多个对象中,我的绑定体验是最一致的。所以,你这没关系:

model.referenceList

或这个

referenceList.refPatientResponseLists

但是,我不希望这会起作用:

model.referenceList.refPatientResponseLists

所以,我的问题是你确定在 dataProvider 中返回了三个项目吗?您确定组件知道您的 dataProvider 中有三个项目(AKA Is Binding 正确更新)?

在不知道您的对象结构的情况下,很难调试您的 labelFunction,但您不需要使用 getItemIndex 函数。

于 2010-10-18T21:50:58.330 回答
0

好的,我能够使用

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

也许对其他有类似问题的人有帮助:)

于 2010-10-22T18:55:27.177 回答