Подкласс Flex ComboBox с опцией "Null" / "All"? - PullRequest
0 голосов
/ 12 ноября 2009

Просто интересно, кто-нибудь знает о существующем компоненте, который подклассы ComboBox, но позволяет вам указать элемент в списке с меткой, такой как "all" или "none", которая установит selectedItem в null? Я пытался написать один, и из-за внутренних компонентов компонента это выглядит как большая работа, поэтому мне интересно, кто-нибудь уже это сделал?

Ответы [ 3 ]

0 голосов
/ 12 ноября 2009

Как насчет чего-то вроде this.

0 голосов
/ 12 ноября 2009

Запустите это:

<?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>
0 голосов
/ 12 ноября 2009

Как будет выглядеть ComboBox, если ни один элемент не выбран? Или все предметы, выбранные по этому вопросу? Похоже, вы должны использовать List вместо ComboBox. Посмотрите на список элементов управления на Tour de Flex .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...