带有“Null”/“All”选项的Flex ComboBox子类?
问题描述:
想知道是否有人知道现有的ComboBox子类的组件,但可以让你指定一个列表中的项目,其中包含像“all”或“none”这样的将selectedItem设置为null的标签?我研究过写一篇文章,并且由于组件的内部结构,它看起来像很多工作,所以我想知道是否有人已经完成了它?带有“Null”/“All”选项的Flex ComboBox子类?
答
没有选择任何项目时,ComboBox的外观如何?或为此选择的所有项目?这听起来像你应该使用List
而不是ComboBox
。看看Tour de Flex上的列表控件。
+0
它看起来与第一次看到它时相同,或者不显示任何内容或提示字段的内容。 – Sophistifunk 2009-11-13 11:10:22
答
运行以下命令:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="100%" height="100%" creationComplete="onCreationComplete()">
<mx:Script>
<![CDATA[
private var myData:Array = new Array();
[Bindable]
private var comboData:Array = new Array();
[Bindable]
private var selectedData:String = "";
private function onCreationComplete():void
{
myData.push({"label" : "First", "value" : "First"});
myData.push({"label" : "Second", "value" : "Second"});
myData.push({"label" : "Third", "value" : "Third"});
comboData.push({"label" : "<None>", "value" : "<None>"});
comboData.push({"label" : "<All>", "value" : "<All>"});
for(var i:int = 0; i < myData.length; i++) {
comboData.push(myData[i]);
}
}
private function onSmartComboBoxChange():void
{
if(smartComboBox.selectedItem) {
if(smartComboBox.selectedItem.value == "<None>") {
selectedData = "";
} else if(smartComboBox.selectedItem.value == "<All>") {
selectedData = "";
for(var i:int = 0; i < myData.length; i++) {
selectedData += myData[i].value + ", ";
}
} else {
selectedData = comboData[smartComboBox.selectedIndex].value;
}
}
}
]]>
</mx:Script>
<mx:VBox>
<mx:ComboBox id="smartComboBox" dataProvider="{comboData}" change="onSmartComboBoxChange()" labelField="label" />
<mx:Label id="selectedDataLabel" text="{selectedData}" />
</mx:VBox>
</mx:Application>
为了澄清,我希望有一个组合框,让你回去将selectedItem = NULL的默认状态,但仍功能正常。我不想构建自定义列表并将它们发送到正常的组合框。 – Sophistifunk 2009-11-13 11:12:38