【问题标题】:Working with Flex ComboBox使用 Flex 组合框
【发布时间】:2014-01-13 18:27:24
【问题描述】:

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

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

但是,如何访问组合框的值?我尝试使用mycb.textInput.text,但似乎效果不佳。如果我使用mycb.selectedItem.name,如果用户手动输入不在列表中的值,它将发送错误。

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

谢谢。

【问题讨论】:

    标签: flash apache-flex actionscript combobox


    【解决方案1】:

    查看example in the documentation 对应的ComboBox。请注意他们如何使用labelToItemFunction 来处理用户键入的内容不在 dataProvider 中的情况。

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

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

    【讨论】:

      【解决方案2】:

      您的第二次尝试是正确的“mycb.selectedItem.name”。在“更改处理程序”中,始终检查 if(mycb.selectedItem!=null) 之类的非空值。那么错误就不会出现了。确保您的“标签字段”与数据提供者中的变量匹配。

      【讨论】:

      • 感谢您的回答。如果是null,那我怎么获取值呢?
      • 因此您需要正确的数据提供者值和手动值。在那种情况下,我认为没有任何工具可用于组合框。但是还有另一种方法。在组合框中,您可以显示其他人,如果用户选择其他人,则显示 textiput 并从那里获取值。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-17
      • 2011-04-14
      相关资源
      最近更新 更多