【问题标题】:Changing value of flex DateField.text property setting selectedDate property to null将 flex DateField.text 属性设置 selectedDate 属性的值更改为 null
【发布时间】:2011-07-26 17:24:19
【问题描述】:

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

我需要设置文本属性,以便我可以使用特定格式 (DD-MMM-YYYY)。

【问题讨论】:

    标签: apache-flex text properties datefield


    【解决方案1】:

    在输入问题的过程中,我进行了一些调查和谷歌搜索,终于找到了答案。

    http://www.cubicleman.com/2008/02/12/flex-datefield-and-formats/

    我花了一天中最好的时间试图找到解决方案,并且已经在 google 上搜索了一番,所以认为将它放在 stackoverflow 上可能是个好主意,这样其他人更有可能找到未来的解决方案。

    答案基本上如下。

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

    代码:

    <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"/>
    

    【讨论】:

    • 谢谢@merv 将解决方案添加到答案中。也许你可以再次投票给我?
    【解决方案2】:
    InputTxt.selectedDate = DateField.stringToDate(InputTxt.text, "DD/MM/YYYY");
    

    请参阅DateField.stringToDate 的 AS 参考。

    【讨论】:

    • stringToDate 似乎不适用于像 MM-DDD-YYYY 这样的日期。有点奇怪,因为如果您失去焦点, selectedDate 就会变得一团糟。
    猜你喜欢
    • 1970-01-01
    • 2018-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-20
    • 2014-12-18
    • 2014-08-25
    • 2013-04-21
    相关资源
    最近更新 更多