In an earlier example, “Changing the current date’s background color in the Flex DateField control”, we saw how you can customize the background color of the current date, assuming that the showToday property is true. In the following example, we see how you can change the font color, style, and weight of the current date by setting the todayStyleName style in the Flex DateField control’s nested DateChooser control.

Full code after the jump.

View MXML

<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2007/12/19/customizing-the-current-date-in-the-flex-datefield-control/ -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
        layout="vertical"
        verticalAlign="top"
        backgroundColor="white">

    <mx:Style>
        DateField {
            todayColor: haloOrange;
            dateChooserStyleName: myCustomDateChooser;
        }

        .myCustomDateChooser {
            todayStyleName: myCustomTodayStyleName;
        }

        .myCustomTodayStyleName {
            color: black;
            fontStyle: italic;
            fontWeight: bold;
        }
    </mx:Style>

    <mx:ApplicationControlBar dock="true">
        <mx:Form styleName="plain">
            <mx:FormItem label="showToday:">
                <mx:CheckBox id="checkBox"
                        selected="true"
                        change="dateField.open();" />
            </mx:FormItem>
        </mx:Form>
    </mx:ApplicationControlBar>

    <mx:DateField id="dateField"
            showToday="{checkBox.selected}"
            creationComplete="dateField.open();" />

</mx:Application>

View source is enabled in the following example.

 
About The Author

Peter deHaan

Peter deHaan currently works for Adobe on the Flex SDK QA team. While not working on Flex, Flash, and ColdFusion applications, Peter enjoys making up bios and writing in 3rd person. Peter's rarely updated blog can be found at blogs.adobe.com/pdehaan/, actionscriptexamples.com, airexamples.com, and coldfusionexamples.com.

9 Responses to Customizing the current date in the Flex DateField control

  1. Avery says:

    Hello Peter.

            DateField {
                todayColor: haloOrange;
                dateChooserStyleName: myCustomDateChooser;
            }
    
            .myCustomDateChooser {
                todayStyleName: myCustomTodayStyleName;
            }
    
            .myCustomTodayStyleName {
                color: black;
                fontStyle: italic;
                fontWeight: bold;
            }
    

    Can you leave a demo here? Can I change whatever the color I want?

  2. tkong says:

    Hi Peter,

    How about when the calendar is showing any month other than this month;
    then when the showToday is checked the month will redraw the current month, with today highlighted, of course.

    Thanks in advance.

    tkong

  3. peterd says:

    tkong,

    Something like this?

    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
            layout="vertical"
            verticalAlign="middle"
            backgroundColor="white">
    
        <mx:Script>
            <![CDATA[
                private function init():void {
                    var theFuture:Date = new Date();
                    theFuture.month += 2;
                    dateChooser.displayedYear = theFuture.fullYear;
                    dateChooser.displayedMonth = theFuture.month;
                }
            ]]>
        </mx:Script>
    
        <mx:ApplicationControlBar dock="true">
            <mx:Button label="Current date"
                    click="dateChooser.selectedDate = new Date();" />
        </mx:ApplicationControlBar>
    
        <mx:DateChooser id="dateChooser"
                initialize="init();" />
    
    </mx:Application>
    

    Peter

  4. Nathan says:

    Hey is there a way to change the color of the day any day I want based on a variable.
    Like if the string on a database is this then the color of the specific day on the datechooser will be labeled in purple or green.

  5. Raju says:

    Hi,
    Is it possible to change the color of the day depending on some xml data put in data provider of an DateChooser?
    like I hav the following:

     
     
     
            DateChooser {
                dateChooserStyleName: myDateChooser;
            }
     
            .myDateChooser {
                background-color:red;           
                font-size:12;
     
            }
     
            .myToday {
     
                fontWeight: bold;
                font-size:14;
                font-thickness:4;
                background-color:yellow;
     
            }
     
     
     
    		 0)
            {
             for (var i:uint=0; i &lt; mycal.numChildren; i++)
             {
              var calendarObj:Object=mycal.getChildAt(i);
              if (calendarObj.hasOwnProperty(&quot;className&quot;))
              {
                if (calendarObj.className == &quot;CalendarLayout&quot;)
                {
                  var cal:CalendarLayout=CalendarLayout(calendarObj);
     
                  for (var j:uint=0; j  0)
                      {
                        for (var k:uint=0; k &lt; eventArray.length; k++)
                        {
                          dayHTML+=&quot;<a HREF='Event:" + eventArray[k].data + "' rel="nofollow">" + eventArray[k].label + "</A>";
     
                        }
     
                        day.htmlText=dayHTML;
                        day.styleName="myToday";
                        mycal.validateDisplayList();
                       //Alert.show("inside last Loop  "+dayHTML);
                       // day.opaqueBackground=true;
     
                      }
                    }
                  }
                }
              }
             }
           }
          }
     
          private function linkHandler(event:TextEvent):void
          {
            Alert.show("Event: " + event.text);
          }
     
          private function dateHelper(renderedDate:String):Array
          {
            var result:Array=new Array();
            for (var i:uint=0; i 
     
     
     
     
     
     
     
     
     
     
     
    And the data1.xml as :
     
     
     
     
    8/22/2009
    This is  a test 1
    Stephens Test 1
     
     
    8/23/2009
    This is  a test 2
    Stephens Test 2

    I want to highlight only the days have some event in thedata1. xml.

  6. shem says:

    hi .. is it possible to allow the user to directly change the year instead of passing each and every month just to reach the desired date?

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

Anti-Spam Protection by WP-SpamFree