简体   繁体   English

Flex 4日期选择器

[英]Flex 4 DateChooser

I have an Array of days. 我有很多日子。 I want those days to have a different background-color in the DateChooser component, say red. 我希望那些日子在DateChooser组件中具有不同的背景颜色,例如红色。

How can I do that please? 我该怎么办?

The DateChooser isn't that easy to customise! DateChooser定制起来不那么容易!

Something close to this will work, though you'll need to tweak it somewhat to suit what you want to do. 与此类似的方法将起作用,尽管您需要对其进行一些调整以适合您想要的操作。

public class FancyDateChooser extends DateChooser {
    public var fancyStyleName : String;
    public var dayToMakeFancy : String;

    protected override createChildren() : void {
        super.createChildren();
        var dateGrid : UIComponent = mx_internal::dateGrid;
        for ( var i: int = 0; i < dateGrid.numChidren; i++ ) {
            if ( ( dateGrid.getChildAt( i ) as IUITextField ).text == dayToMakeFancy ) {
                dateGrid.getChildAt( i ).styleName = fancyStyleName;
            }
        }
    }
}

Thanks for Gregor Kiddie's share. 感谢Gregor Kiddie的分享。 I modified Gregor Kiddie's code a bit. 我稍微修改了Gregor Kiddie的代码。 Let it can input multiple dates. 让它可以输入多个日期。

public class MyDateChooser extends DateChooser
{
    public var highlightColor : Number = 0xff0000; // sample
    public var highlightDate : Array = ["10","20"]; // sample

    public function MyDateChooser()
    {
        super();
    }

    protected override function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void {
        super.updateDisplayList(unscaledWidth, unscaledHeight);
        var dateGrid : UIComponent = mx_internal::dateGrid;
        for ( var i: int = 0; i < dateGrid.numChildren; i++ ) {
            if (dateGrid.getChildAt( i ) is IUITextField) {
                var textField:UITextField = dateGrid.getChildAt(i) as UITextField;
                for (var j:int = 0; j<highlightDate.length; j++) {
                    if ( textField.text == highlightDate[j] ) {
                        textField.textColor = highlightColor;
                    }
                }
            }
        }

You have to use disabledRanges and disabledColor . 您必须使用disabledRangesdisabledColor Here is an example on "Flex examples". 下面是一个例子的“Flex例子”。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM