我希望用户DateChooser
允许用户选择给定月份和年份的日期。我想以编程方式设置月份和年份,只允许用户选择日期/日期。
我可以通过将minYear和maxYear设置为我想要的任何年份来轻松完成这一年,但是我没有看到禁止用户选择不同月份的直接方式吗?
答案 0 :(得分:2)
以下是禁用月份选择箭头的方法......一个完整的CSS hack !!
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月份没有看到这个问题而道歉。但我最近(昨天)遇到了同样的问题并找到了解决方案......干杯。
答案 1 :(得分:2)
如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;
}
}
答案 2 :(得分:1)
您还可以使用 selectableRange 属性并相应地设置 rangeStart 和 rangeEnd 。仅允许用户从2010年8月1日到2010年8月15日选择的示例:
selectableRange="{{rangeStart:new Date(2010,7,1), rangeEnd:new Date(2010,7,15)}}"
但是,请注意它仍会显示月份导航箭头(尽管它们已被禁用)。我不确定是否有一种简单的方法来隐藏它们。
答案 3 :(得分:1)
mx:开箱即用的DateChooser只允许公共财产禁用年份导航“yearNavigationEnabled”
如果您也想禁用月导航,则必须从标准DateChooser组件扩展并实现类似于现有“yearNavigationEnabled”的“monthNavigationEnabled”功能