使用Flex ComboBox

时间:2013-12-26 04:20:10

标签: flash flex actionscript combobox

在Flex中,我们可以创建一个组合框:

<s:ComboBox id="mycb" dataProvider="{data}" labelField="name" change="combobox1_changeHandler(event)"/>

但是,如何访问组合框的值?我试过mycb.textInput.text,但似乎效果不好。如果我使用mycb.selectedItem.name,如果用户手动输入不在列表中的值,则会调度错误。

那么,我怎样才能得到组合框的值,它的值可能是也可能不在下拉列表中?

谢谢。

2 个答案:

答案 0 :(得分:0)

你的第二次尝试是正确的“mycb.selectedItem.name”。在“更改处理程序”中,始终检查not null,如if(mycb.selectedItem!= null)。然后错误将不会出现。确保您的“labelfield”与数据提供者中的变量匹配。

答案 1 :(得分:0)

查看ComboBox的{​​{3}}。请注意当用户键入不在dataProvider中的内容时,他们如何使用example in the documentation来处理这种情况。

您可以使用此函数返回其中包含自定义值的对象。然后让现有的更改处理程序处理自定义值,就像dataProvider中的那样。

<!-- Function to handle custom input strings -->                        
private function myLabelToItemFunction(input:String):*
{
    <!-- Returns object that matches items in dataProvider -->
    return {ingredient:input, category:"mystery"};
}