2011-06-30 8 views

答えて

4

これは動作します。しかし、これはコンポーネントのformatStringプロパティが正常に動作しない理由を説明していませんhttp://livedocs.adobe.com/flex/3/html/help.html?content=controls_12.html

でLiveDocsの中でそれを見つけた

<fx:Declarations> 
    <mx:DateFormatter id="myDf" formatString="DD MMM YYYY"/> 
</fx:Declarations> 
<fx:Script> 
    <![CDATA[ 
     private function formatDate(date:Date):String{ 
      return myDf.format(date); 
     } 
    ]]> 
</fx:Script> 
<mx:DateField id="dateField" labelFunction="formatDate" /> 

。 期待通りに動作しないことが確認できます。

乾杯

+1

私は、デフォルトのフォーマッタを使用する代わりに、MX DateFieldが(強力でない)内部関数dateToString()とstringToDate()を使用して値を解析して書式を設定していると考えています。 –

+0

私はそれが[長年にわたるFlexのバグ](https://bugs.adobe.com/jira/browse/SDK-25343)の結果だと思います。 'dateToString()'と 'stringToDate()'は、 ' '要素で使われているコードと同じようには機能していません。このバグは 'labelFunction()'を変更するときに 'parseFunction()'を 'null'に設定しなければならないことを意味します(バグレポートを参照)。 – supervacuo

0

私はこのようなものを使用します:あなたは3人の文字の月の名前を言及しているので

<mx DateField id  = "dateField" 
       dayNames ="["S", "M", "T", "W", "T", "F", "S"]" 
       monthNames="["January", "February", "March", "April", "May", 
          "June", "July", "August", "September", "October", 
          "November", "December"]" /> 

を、これは良い例です。もちろん、曜日名が必要ない場合は、その行を削除してください。

<mx DateField id  = "dateField" 
       dayNames ="["S", "M", "T", "W", "T", "F", "S"]" 
       monthNames="["Jan", "Feb", "Mar", "Apr", "May", 
          "Jun", "Jul", "Aug", "Sep", "Oct", 
          "Nov", "Dec"]" 
      formatString = "DD MMM YYY" /> 

これが役に立ちます。

関連する問題