Flex DropDownList LabelFunction问题

时间:2010-10-18 21:25:20

标签: flex drop-down-menu labelfunction

我有一个下拉列表:

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

现在refPatientResponseLists返回3行数据&amp;我需要在下拉列表中显示3个值。所以我有标签功能:

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

但是这在Dropdownlist中只显示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

2 个答案:

答案 0 :(得分:0)

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

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

如果你有一个带有三个项目的dataProvider,应该调用labelFunction 3次。每个项目都会调用一次。

通常,如果我不绑定到多个对象,我的绑定体验最为一致。所以,你可以这样做:

model.referenceList

或者

referenceList.refPatientResponseLists

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

model.referenceList.refPatientResponseLists

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

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

答案 1 :(得分:0)

好的我能够使用

解决它
Model.referenceList.refPatientResponseLists.getItemAt(0).refPatientResponses

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