【问题标题】:Dynamic populate ComboBox (Flex)动态填充 ComboBox (Flex)
【发布时间】:2010-03-27 12:54:11
【问题描述】:
我想在单击按钮后填充 ComboBox。
这是我的代码:
var dpNames:ArrayCollection = new ArrayCollection();
for each(var ca:Categorie in arrCategories)
{
dpNames.addItem ({label: ca.name, data: ca.value});
}
cbWijzigCategorie.dataProvider = dpNames;
但是当他执行最后一行时,我总是得到以下错误:
TypeError:错误 #1009:无法访问
空对象的属性或方法
参考。
我不知道为什么。
非常感谢,
文森特
【问题讨论】:
标签:
apache-flex
actionscript-3
【解决方案1】:
private function categorieItemClick(evt:ItemClickEvent):void
{
var dpNames:ArrayCollection = new ArrayCollection();
for each( var ca:Categorie in arrCategories)
{
dpNames.addItem ({label: ca.Name, data: ca.Name});
}
cbWijzigCategorie.dataProvider = dpNames;
}
<mx:ButtonBar
x="10" y="36"
id="tbtnbarCategorie"
dataProvider="vsCategorie"
itemClick="categorieItemClick(event)">
</mx:ButtonBar>
<mx:ViewStack
x="10" y="64"
id="vsCategorie"
width="601" height="343">
<mx:Canvas label="Wijzig categorie"
id="cnvsChangeCategorie"
width="100%" height="100%">
<mx:Label
x="10" y="10"
text="Kies categorie"/>
<mx:ComboBox
x="101" y="8"
id="cbWijzigCategorie"></mx:ComboBox>
</mx:Canvas>
</mx:ViewStack>
【解决方案2】:
您的组合框是否已实例化?
查看错误消息,问题将来自“cbWijzigCategorie.datprovider”。它无法访问 dataprovider 属性,因为 cbWijzigCategorie 为 null。
您在哪里将数据提供者分配给组合框?在组件内部还是外部?
问候。
【解决方案3】:
确保arrCategories 不为空且已正确初始化。