04
May
08

Setting a minimum and maximum allowable year in the DateChooser control in Flex

The following examples show how you can set a minimum and maximum allowable year in the Flex DateChooser control by setting the minYear and maxYear properties.

Full code after the jump.

The following example sets the maximum year to the current year, preventing you from using the month-based or year-based navigation to advance to future years (but future months within the same year are allowed):

View MXML

<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2008/05/04/setting-a-minimum-and-maximum-allowable-year-in-the-datechooser-control-in-flex/ -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
        layout="vertical"
        verticalAlign="middle"
        backgroundColor="white">

    <mx:DateChooser id="dateChooser"
            yearNavigationEnabled="true"
            initialize="dateChooser.maxYear = new Date().fullYear;" />

</mx:Application>

View source is enabled in the following example.

The following example sets the minimum year to the current year, preventing you from using the month-based or year-based navigation to advance to previous years (but previous months within the same year are allowed). Also, a disabled range is set up using the disabledRanges property which specifies a rangeEnd value of the current date, preventing users from selecting any days prior to today:

View MXML

<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2008/05/04/setting-a-minimum-and-maximum-allowable-year-in-the-datechooser-control-in-flex/ -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
        layout="vertical"
        verticalAlign="middle"
        backgroundColor="white">

    <mx:DateChooser id="dateChooser"
            yearNavigationEnabled="true"
            initialize="dateChooser.minYear = new Date().fullYear;"
            disabledRanges="{[{rangeEnd:new Date()}]}" />

</mx:Application>

View source is enabled in the following example.


3 Responses to “Setting a minimum and maximum allowable year in the DateChooser control in Flex”


  1. 1 Jim Jones Aug 27th, 2008 at 1:13 pm

    Your statement, “Also, a disabled range is set up using the disabledRanges property which specifies a rangeEnd value of the current date, preventing users from selecting any days PRIOR to today” is incorrect. Instead, users are prevented from selecting any days PRIOR to today PLUS TODAY. How would you make the exclusion begin yesterday going backward (or tomorrow going forward)?

    Thanks,

    Jim

  2. 2 peterd Aug 27th, 2008 at 2:38 pm

    Jim Jones,

    Instead of using new Date(), which returns the current date/time, try something like the following:

    var today:Date = new Date();
    var yesterday:Date = new Date(today.fullYear, today.month, today.date-1);
    dateChooser.disabledRanges = [{rangeEnd:yesterday}];
    

    Peter

  3. 3 Radhika Nov 29th, 2008 at 1:24 am

    Is it possible to restrict even the month field?
    Though the dates are restricted, we are able to navigate through these months??

Leave a Reply

This blog is terrible at eating HTML tags. If you plan on posting code/XML, please escape your "<" characters as "&lt;" and your ">" characters as "&gt;".




Badge Farm

  • Powered by Redoable 1.2
  • Cornify
  • Feeds burnt by Feedburner
  • Feed