понедельник, 6 сентября 2010 г.

DateChooser Получаем название дня недели.

Выпала необходимость поработать с этим компонентом и на основе его делать выборку по дням недели.
Сам компонент:

    <mx:DateChooser id="date"
                    dayNames="[ 'Вс','Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб']"
                    firstDayOfWeek="1"
                    showToday="false"
                    monthNames="[ 'Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь' ]"
                    />

Обработчик события на change:

    protected function initializeHandler(event:FlexEvent):void
            {
                date.addEventListener(Event.CHANGE, dateListener);
            }

Получаем день недели:

protected function dateListener(event:Event):void
            {
                trace(date.selectedDate.getDay());
            }
Обратите внимание что в консоль выводиться номер элемента в массиве dayNames, несмотря на то что мои DateChooser адаптирован на календарь с началом недели с понедельника при выборе Пн в DateChooser в консоль выведеться "1" а при выборе Вс "0".

Приведу возможныи пример дальнеишеи обработки:

        protected function dateListener(event:Event):void
            {
                switch(date.selectedDate.getDay()){
                case 0:
                    trace('Вс');
                    break;
                case 1:
                    trace('Пн');
                    break;
                case 2:
                    break;
                case 3:
                    break;
                case 4:
                    break;
                case 5:
                    break;
                case 6:
                    break;
                }
          }

1 комментарий:

  1. почему бы просто не объявить
    private const dayNames:Array = ["ВС"....]
    ...
    а потом
    trace(dayNames[date.selectedDate.getDay()]);

    ОтветитьУдалить