我有一个下拉列表:
<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
答案 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
对于有类似问题的其他人也许有帮助:))