DateChooser .. отключить год и месяц? - PullRequest
3 голосов
/ 02 августа 2010

Я хочу, чтобы пользователь DateChooser позволил пользователю выбрать дату в данном месяце и году. Я хочу установить месяц и год программно и разрешить пользователю выбирать только дату / день.

Я могу сделать это для года легко, установив minYear и maxYear на любой год, который я хочу, но я не вижу прямого способа запретить пользователю выбирать другой месяц?

Ответы [ 4 ]

2 голосов
/ 24 февраля 2011

Как упоминалось JabbyPanda , вы можете расширить элемент управления DateChooser.Приложив немного больше работы, вы можете получить идеальную и более многократно используемую реализацию, но давайте придерживаться простоты здесь.Итак, все, что вам нужно сделать, это удалить оба значения fwdMonthButton и backMonthButton или скрыть их, установив для свойства visible значение false.Например:

import mx.controls.DateChooser;
import mx.core.mx_internal;
use namespace mx_internal;

public class MyDateChooser extends DateChooser
{
    override protected function createChildren():void {
        super.createChildren();
        // Remove them:
        this.removeChild(this.mx_internal::fwdMonthButton);
        this.removeChild(this.mx_internal::backMonthButton);
        // Or just hide them:
        //this.mx_internal::fwdMonthButton.visible = false; 
        //this.mx_internal::backMonthButton.visible = false;    
    }
}
2 голосов
/ 23 сентября 2010

Вот как вы можете отключить стрелки выбора месяца ... полный CSS взломать !!

nextMonthUpSkin: ClassReference('mx.skins.Border');
nextMonthDisabledSkin: ClassReference('mx.skins.Border');
nextMonthDownSkin: ClassReference('mx.skins.Border');
nextMonthOverSkin: ClassReference('mx.skins.Border');
prevMonthUpSkin: ClassReference('mx.skins.Border');
prevMonthDisabledSkin: ClassReference('mx.skins.Border');
prevMonthDownSkin: ClassReference('mx.skins.Border');
prevMonthOverSkin: ClassReference('mx.skins.Border');   

Я прошу прощения за то, что не видел этот вопрос в августе. Но у меня недавно (вчера) возникла та же проблема, и я нашел это решение ... ура.

1 голос
/ 03 августа 2010

mx: DateChooser "из коробки" разрешает только отключение навигации по году с помощью открытого свойства "yearNavigationEnabled"

Если вы также хотите отключить навигацию по месяцам, вам придется выйти из стандартного компонента DateChooser и реализовать "Функция monthNavigationEnabled "аналогична существующей функции yearNavigationEnabled"

1 голос
/ 02 августа 2010

Вы также можете использовать свойство selectableRange и установить rangeStart и rangeEnd соответственно.Пример, позволяющий пользователю выбирать только с 1 августа 2010 года по 15 августа 2010 года:

selectableRange="{{rangeStart:new Date(2010,7,1), rangeEnd:new Date(2010,7,15)}}"

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

...