Flex DateField / DateChooser Issue
Мы используем mx:DateField для наших дат и editable="true", чтобы мы могли либо выбрать дату, либо ввести ее. Требуется, чтобы мы не смогли ввести более 10 символов в это поле (10.10.2010). Но DateField не имеет свойства maxChars, чтобы ограничить это.
Поэтому мы попытались использовать Text Field + DateChooser, чтобы ограничить количество символов. Все работает как нужно, но проблема в том, что DateChooser показывает весь календарь на странице, а не как значок календаря, который будет всплывать в календаре (как DateField).
Так что теперь мой вопрос
1) Используя DateField, как я могу ограничить количество символов, которые можно ввести в текстовое поле до 10
или же
2) Используя DateChooser, как я могу изменить его внешний вид, чтобы он отображал значок календаря, а затем отображать календарь как всплывающее окно при нажатии на него (аналогично DateField).
Если кто-то может помочь мне в этом, это было бы замечательно.
1 ответ
Начните с чего-то вроде этого:
<s:TextInput click="dc.visible=!dc.visible" maxChars="10" />
<mx:DateChooser id="dc" visible="false" />
Отсюда вам просто нужно обработать события клика для выбора даты и правильно заполнить текстовый ввод
ОБНОВЛЕНИЕ: в попытке ответить на ваши вопросы из комментариев
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