Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   ComboBox с мультиселектом (http://www.flasher.ru/forum/showthread.php?t=113031)

gnus 16.06.2008 22:28

ComboBox с мультиселектом
 
долго безуспешно искал такой компонент или как его сделать. вот сделал. может кому понадобится. конечно возможно не без глюков.
делал на коленке.

Код:

<?xml version="1.0" encoding="utf-8"?>
<mx:ComboBox xmlns:mx="http://www.adobe.com/2006/mxml" initialize="init()">
        <mx:Script>
        <![CDATA[
                import mx.collections.ArrayCollection;

                public var selectedItems:ArrayCollection;
               
                private function init():void
                {
                        selectedItems=new ArrayCollection;
                }
               
                override public function close(trigger:Event = null):void
                {
                        if(!trigger)return;
                        super.close();                       
                }
               
                override public function open():void {}               
       
                public function changing():void
                {
                        if(selectedItems.length==0)return;
                        if(selectedItems.length==1)
                        {
                                text=selectedItems.getItemAt(0)[labelField];                       
                        }
                        if(selectedItems.length>1)
                        {
                                text='selected '+selectedItems.length.toString()+' items';
                        }
                }       
        ]]>
        </mx:Script>
        <mx:dropdownFactory>
                <mx:Component>
                        <mx:List allowMultipleSelection="true" change="change()">
                                <mx:Script>
                                <![CDATA[
                                        import mx.events.ListEvent;
                                        private function change():void
                                        {       
                                                outerDocument.selectedItems.removeAll();
                                                this.selectedItems.forEach(callback);
                                                outerDocument.changing();
                                        }
                                        private function callback(element:*, index:int, arr:Array):void
                                        {
                                                outerDocument.selectedItems.addItem(element);
                                        }                                       
                                ]]>
                                </mx:Script>
                        </mx:List>
                </mx:Component>
        </mx:dropdownFactory>
</mx:ComboBox>

список выделенных итемов в public var selectedItems:ArrayCollection;


Часовой пояс GMT +4, время: 10:33.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.