代码之家  ›  专栏  ›  技术社区  ›  Sophistifunk

具有“null/“all”选项的flex组合框子类?

  •  0
  • Sophistifunk  · 技术社区  · 15 年前

    只是想知道是否有人知道一个现有的组件,该组件为组合框子类,但允许您在列表中指定一个标签为“all”或“none”的项,将selecteditem设置为null?我已经研究过编写一个,由于组件的内部结构,看起来需要做很多工作,所以我想知道是否有人已经完成了?

    3 回复  |  直到 15 年前
        1
  •  0
  •   Ryan Lynch    15 年前

    当没有选择任何项时,组合框会是什么样子?或者所有为那件事选择的物品?听起来你应该用 List 而不是 ComboBox . 查看上的列表控件 Tour de Flex .

        2
  •  0
  •   Chetan S    15 年前

    像这样的怎么样 this.

        3
  •  0
  •   tefozi    15 年前

    运行此操作:

    <?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>
    
    推荐文章