Apache flex 将flex DateField.text属性设置selectedDate属性的值更改为null

Apache flex 将flex DateField.text属性设置selectedDate属性的值更改为null,apache-flex,text,properties,datefield,Apache Flex,Text,Properties,Datefield,我有一个奇怪的问题。设置flex DateField的text属性会使该DateField的selectedDate属性变为null 我需要设置文本属性,这样我就可以使用特定的格式(DD-MMMYYYY)。 < P>。在键入我的问题的时候,我做了更多的调查和一点谷歌搜索,最后找到了答案。 我花了一天的大部分时间试图找到解决方案,并且已经在谷歌上搜索了一段时间,所以我想把它放在stackoverflow上可能是个好主意,这样将来其他人就更有可能找到解决方案 基本上,答案如下 您需要结合使用日期格

我有一个奇怪的问题。设置flex DateField的text属性会使该DateField的selectedDate属性变为null


我需要设置文本属性,这样我就可以使用特定的格式(DD-MMMYYYY)。

< P>。在键入我的问题的时候,我做了更多的调查和一点谷歌搜索,最后找到了答案。

我花了一天的大部分时间试图找到解决方案,并且已经在谷歌上搜索了一段时间,所以我想把它放在stackoverflow上可能是个好主意,这样将来其他人就更有可能找到解决方案

基本上,答案如下

您需要结合使用日期格式化程序和标签函数才能正确显示日期。然后,为了能够以编程方式设置日期而不让Flex“弄乱你的头”,需要将dateField上的parseFunction设置为null

代码:



请参阅作为参考。

谢谢@merv在答案中添加了解决方案。也许你可以再次投票给我?stringToDate似乎不适用于MM-DDD-YYYY这样的日期。有点奇怪,因为如果你失去了焦点,选定的日期就会变得一团糟。
<mx:Script>
  <![CDATA[
      private function doDateLabel(item:Date):String {
         return dateFormatter.format(item);
      }
  ]]>
</mx:Script>
<mx:DateFormatter id="dateFormatter" formatString="DD/MMM/YYYY" />
<mx:DateField id="begin"
              showToday="true"
              labelFunction="doDateLabel"
              parseFunction="null"/>
InputTxt.selectedDate = DateField.stringToDate(InputTxt.text, "DD/MM/YYYY");