![](/img/trans.png)
[英]Flex DateChooser component, 42 days, show days of prev/next month
[英]DateChooser.. disable year and month?
我希望用戶使用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;
}
}
您還可以使用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”功能
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.