Flex: какой-либо элемент управления для выбора месяца? - PullRequest
0 голосов
/ 18 июня 2009

Существует ли элемент управления Flex для выбора месяцев (любой)?

Сейчас я использую DateField и позволяю пользователю выбрать любую дату в месяце, чтобы выбрать этот месяц.

Ответы [ 2 ]

5 голосов
/ 18 июня 2009

Может, попробовать ComboBox? или список?

Итак, вот пример с ComboBox:

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml"
    xmlns:controls="radekg.*">
    <mx:Form>
        <mx:FormItem label="Select date:">
            <controls:DateComboBox id="dcb" change="trace(dcb.selectedMonth)" />
        </mx:FormItem>
    </mx:Form>
</mx:WindowedApplication>

И radekg / DateComboBox.as

package radekg {
    import mx.collections.ArrayCollection;
    import mx.controls.ComboBox;
    import mx.formatters.DateFormatter;

    public class DateComboBox extends ComboBox {

        public function DateComboBox() {
            super();
            var formatter:DateFormatter = new DateFormatter();
            formatter.formatString = "MMMM";
            dataProvider = new ArrayCollection();
            for (var i:int=0; i<12; i++) {
                var date:Date = new Date(1971,i,1);
                ArrayCollection(dataProvider).addItem(
                    { label: formatter.format(date), data: date }
                );
            }
            selectedIndex = 0;
        }

        public function get selectedMonth():Number {
            return (selectedItem.data as Date).month;
        }
        public function set selectedMonth(value:Number):void {
            selectedIndex = value;
        }

    }
}

Это всего лишь образец :) Надеюсь, это поможет.

0 голосов
/ 01 июля 2011

Вы также можете использовать сжатый DateChooser, что-то вроде этого:

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml">


    <mx:DateChooser id="dateChooser" height="31"/>

</mx:WindowedApplication>

А в функции Init:

//import com.adobe.fiber.runtime.lib.DateTimeFunc;

public function init():void {
//    var days:int = DateTimeFunc.daysInMonth(new Date() );
    var disabledDays:Array = [ 0, 1, 2, 3 , 4, 5, 6 ];
    this.view.dateChooser.disabledDays = disabledDays;
    this.view.dateChooser.yearNavigationEnabled = true;
    this.view.dateChooser.minYear = 2010;
}

Я не уверен, что отключение дней как-то полезно, но поскольку мы скрываем дни, подпанель бесполезна.

Обратите внимание, что я указал минимальный год и включил селектор года. Я оставил комментарий к пользовательской функции при работе с календарями:)

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