我希望用户 aDateChooser
允许用户选择给定月份和年份中的日期。我想以编程方式设置月份和年份,并且只允许用户选择日期/日期。
我可以通过将 minYear 和 maxYear 设置为我想要的任何年份来轻松完成这一年,但我没有看到不允许用户选择不同月份的严格方法?
我希望用户 aDateChooser
允许用户选择给定月份和年份中的日期。我想以编程方式设置月份和年份,并且只允许用户选择日期/日期。
我可以通过将 minYear 和 maxYear 设置为我想要的任何年份来轻松完成这一年,但我没有看到不允许用户选择不同月份的严格方法?
这是您禁用月份选择箭头的方法……一个完整的 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');
对于八月份没有看到这个问题,我深表歉意。但是我最近(昨天)遇到了同样的问题并找到了这个解决方案......干杯。
正如JabbyPanda所提到的,您可以扩展 DateChooser 控件。只需很少的额外工作,您就可以获得一个理想且更可重用的实现,但让我们在这里坚持简单。因此,您需要做的就是同时删除fwdMonthButton
and 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;
}
}
您还可以使用selectableRange属性并适当地设置rangeStart和rangeEnd。仅允许用户从 2010 年 8 月 1 日到 2010 年 8 月 15 日进行选择的示例:
selectableRange="{{rangeStart:new Date(2010,7,1), rangeEnd:new Date(2010,7,15)}}"
但是,请注意它仍会显示月份导航箭头(尽管它们已被禁用)。我不确定是否有一种简单的方法可以隐藏它们。
开箱即用的 mx:DateChooser 仅允许通过公共属性“yearNavigationEnabled”禁用年份导航
如果您也想禁用月份导航,则必须从标准 DateChooser 组件扩展并实现类似于现有“yearNavigationEnabled”的“monthNavigationEnabled”功能