ユーザーDateChooser
が特定の月と年の日付を選択できるようにする必要があります。プログラムで月と年を設定し、ユーザーが日付/日のみを選択できるようにしたい。
minYear と maxYear を任意の年に設定することで、その年にこれを簡単に行うことができますが、ユーザーが別の月を選択できないようにする簡単な方法はありませんか?
ユーザーDateChooser
が特定の月と年の日付を選択できるようにする必要があります。プログラムで月と年を設定し、ユーザーが日付/日のみを選択できるようにしたい。
minYear と maxYear を任意の年に設定することで、その年にこれを簡単に行うことができますが、ユーザーが別の月を選択できないようにする簡単な方法はありませんか?
月の選択矢印を無効にする方法は次のとおりです...完全なCSSハック!!
nextMonthUpSkin: ClassReference('mx.skins.Border');
nextMonthDisabledSkin: ClassReference('mx.skins.Border');
nextMonthDownSkin: ClassReference('mx.skins.Border');
nextMonthOverSkin: ClassReference('mx.skins.Border');
prevMonthUpSkin: ClassReference('mx.skins.Border');
prevMonthDisabledSkin: ClassReference('mx.skins.Border');
prevMonthDownSkin: ClassReference('mx.skins.Border');
prevMonthOverSkin: ClassReference('mx.skins.Border');
8月にこの質問が表示されなかったことをお詫び申し上げます。しかし、私は最近(昨日)同じ問題を抱えていて、この解決策を見つけました...乾杯。
JabbyPandaで述べたように、DateChooser コントロールを拡張できます。少し余分な作業を行うだけで、理想的でより再利用可能な実装を得ることができますが、ここでは単純さに固執しましょう。したがって、 と の両方を削除するfwdMonthButton
かbackMonthButton
、 visible プロパティを false に設定して非表示にするだけです。例えば:
import mx.controls.DateChooser;
import mx.core.mx_internal;
use namespace mx_internal;
public class MyDateChooser extends DateChooser
{
override protected function createChildren():void {
super.createChildren();
// Remove them:
this.removeChild(this.mx_internal::fwdMonthButton);
this.removeChild(this.mx_internal::backMonthButton);
// Or just hide them:
//this.mx_internal::fwdMonthButton.visible = false;
//this.mx_internal::backMonthButton.visible = false;
}
}
mx:DateChooser をそのまま使用すると、パブリック プロパティ "yearNavigationEnabled" による年ナビゲーションの無効化のみが許可されます
月のナビゲーションも無効にしたい場合は、標準の DateChooser コンポーネントから拡張し、既存の「yearNavigationEnabled」と同様の「monthNavigationEnabled」機能を実装する必要があります。
また、 selectableRangeプロパティを使用して、rangeStartとrangeEndを適切に設定することもできます。ユーザーに 2010 年 8 月 1 日から 2010 年 8 月 15 日までの選択のみを許可する例:
selectableRange="{{rangeStart:new Date(2010,7,1), rangeEnd:new Date(2010,7,15)}}"
ただし、月ナビゲータの矢印は引き続き表示されることに注意してください (無効になっています)。それらを非表示にする簡単な方法があるかどうかはわかりません。