代码之家  ›  专栏  ›  技术社区  ›  Niels Bosma

灵活:有选择月份的控件吗?

  •  0
  • Niels Bosma  · 技术社区  · 15 年前

    是否有任何灵活的控制来选择月份(任何)?

    现在我正在使用一个日期字段,允许用户选择一个月中的任何日期来选择该月。

    2 回复  |  直到 11 年前
        1
  •  5
  •   radekg    15 年前

    也许可以试试ComboBox?还是名单?

    下面是带有组合框的示例:

    <?xml version="1.0" encoding="utf-8"?>
    <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml"
        xmlns:controls="radekg.*">
        <mx:Form>
            <mx:FormItem label="Select date:">
                <controls:DateComboBox id="dcb" change="trace(dcb.selectedMonth)" />
            </mx:FormItem>
        </mx:Form>
    </mx:WindowedApplication>
    

    和radekg/dateComboBox.as.

    package radekg {
        import mx.collections.ArrayCollection;
        import mx.controls.ComboBox;
        import mx.formatters.DateFormatter;
    
        public class DateComboBox extends ComboBox {
    
            public function DateComboBox() {
                super();
                var formatter:DateFormatter = new DateFormatter();
                formatter.formatString = "MMMM";
                dataProvider = new ArrayCollection();
                for (var i:int=0; i<12; i++) {
                    var date:Date = new Date(1971,i,1);
                    ArrayCollection(dataProvider).addItem(
                        { label: formatter.format(date), data: date }
                    );
                }
                selectedIndex = 0;
            }
    
            public function get selectedMonth():Number {
                return (selectedItem.data as Date).month;
            }
            public function set selectedMonth(value:Number):void {
                selectedIndex = value;
            }
    
        }
    }
    

    这只是一个例子:)希望能有所帮助。

        2
  •  0
  •   soleshoe    13 年前

    您还可以使用压缩的日期选择器,如下所示:

    <?xml version="1.0" encoding="utf-8"?>
    <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml">
    
    
        <mx:DateChooser id="dateChooser" height="31"/>
    
    </mx:WindowedApplication>
    

    在init函数中:

    //import com.adobe.fiber.runtime.lib.DateTimeFunc;
    
    public function init():void {
    //    var days:int = DateTimeFunc.daysInMonth(new Date() );
        var disabledDays:Array = [ 0, 1, 2, 3 , 4, 5, 6 ];
        this.view.dateChooser.disabledDays = disabledDays;
        this.view.dateChooser.yearNavigationEnabled = true;
        this.view.dateChooser.minYear = 2010;
    }
    

    我不确定禁用天数是否有用,但由于我们隐藏了天数,所以子面板是无用的。

    请注意,我指定了最小年份并启用了年份选择器。 我在处理日历时留下了一个用户功能的注释:)

    推荐文章