Flex DateField / DateChooser Issue - PullRequest
       21

Flex DateField / DateChooser Issue

0 голосов
/ 31 января 2011

Мы используем mx: DateField для наших дат и editable = "true", чтобы мы могли либо выбрать дату, либо ввести ее.Требуется, чтобы мы не смогли ввести более 10 символов в это поле (10.10.2010).Но DateField не имеет свойства maxChars, чтобы ограничить это.

Поэтому мы попытались использовать текстовое поле + DateChooser, чтобы ограничить количество символов.Все работает как нужно, но проблема в том, что DateChooser показывает весь календарь на странице, а не как значок календаря, который будет всплывать в календаре (как DateField).

Так что теперь мой q равен

1) Используя DateField, как я могу ограничить количество символов, которые можно ввести в текстовое поле, до 10

или

2) Используя DateChooser, как я могу изменитьего появление, чтобы отобразить значок календаря, а затем щелкнуть календарь как всплывающее окно (аналогично DateField).

Если кто-то может помочь мне в этом, это было бы замечательно.

1 Ответ

2 голосов
/ 31 января 2011

Начните с чего-то вроде этого:

<s:TextInput click="dc.visible=!dc.visible" maxChars="10" />
<mx:DateChooser id="dc" visible="false" />

Отсюда вам просто нужно обработать события клика в окне выбора даты и соответствующим образом заполнить текстовый ввод

UPDATE: При попытке ответить на ваши вопросы из комментариев

UI:

<s:HGroup>
    <s:TextInput id="dateInput" click="dateInput_clickHandler(event)" maxChars="10" />
    <mx:DateChooser id="dc" visible="false" includeInLayout="false" change="dc_changeHandler(event)" />
</s:HGroup>

Сценарий:

protected function dateInput_clickHandler(event:MouseEvent):void
{
    dc.includeInLayout = !dc.includeInLayout;
    dc.visible = !dc.visible;
}

protected function dc_changeHandler(event:CalendarLayoutChangeEvent):void
{       
    dateInput.text = dateFormatter.format(event.newDate);
    dateInput_clickHandler(null);
}

Объявления:

<mx:DateFormatter id="dateFormatter" formatString="MM/DD/YYYY" />

Надеюсь, это поможет! -Ian

...