簡體   English   中英

DateChooser ..禁用年月?

[英]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控件。 只需要很少的額外工作,您就可以獲得理想且更可重用的實現,但在這里我們要堅持簡單。 因此,您需要做的就是刪除fwdMonthButtonbackMonthButton ,或者通過將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屬性並相應地設置rangeStartrangeEnd 僅允許用戶從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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM