Click here to Skip to main content
Licence 
First Posted 13 Oct 2005
Views 158,758
Bookmarked 70 times

JavaScript DatePicker

By | 24 Feb 2006 | Article
The DatePicker is a control for use on the client side of ASP.NET applications.

Sample Image - datepicker.gif

Introduction

Here is the sample code for a DatePicker in JavaScript. It can be used on HTML pages or as an ASP control - like I use it (see demo files).

Here is the code snippet of the JS code (part of the "render" function):

DatePicker.prototype.render = function()
{
     var oT1, oTR1, oTD1, oTH1;
     var oT2, oTR2, oTD2;
     this.oSpan = document.getElementById(this.name);
     this.oSpan.appendChild(oT1 = document.createElement("table"));
     oT1.width = "200";
     oT1.border = 1;
     oTR1 = oT1.insertRow(oT1.rows.length);
     oTD1 = oTR1.insertCell(oTR1.cells.length);
     oTD1.colSpan = 7;
     oTD1.className = 'DatePickerHdr';
     oT2 = document.createElement("table");
     oT2.width = "100%";
     oTD1.appendChild(oT2);
     oT2.border = 0;
     // New row.
     oTR2 = oT2.insertRow(oT2.rows.length);
     // Previous month.
     oTD2 = oTR2.insertCell(oTR2.cells.length);
     oTD2.title = this.texts.prevMonth;
     oTD2.onclick = function() { this.oDatePicker.onPrev(); }
     oTD2.oDatePicker = this;
     oTD2.innerHTML = "<img src="images/datepicker/prev.gif">";
     oTD2.className = 'DatePickerHdrBtn';
     // Month combo.
     oTD2 = oTR2.insertCell(oTR2.cells.length);
     oTD2.title = this.texts.monthTitle;
     this.oMonth = document.createElement("select");
     oTD2.appendChild(this.oMonth);
     this.oMonth.oDatePicker = this;
     this.oMonth.onchange = this.oMonth.onkeyup = 
          function() { this.oDatePicker.onMonth(); }
     for(var i = 0; i < 12; i++)
     {
        this.oMonth.add(new Option(this.texts.months[i], i),undefined);
     }
     this.oMonth.className = 'DatePickerHdrBtn';
     // Year combo.
     oTD2 = oTR2.insertCell(oTR2.cells.length);
     oTD2.title = this.texts.yearTitle;
     this.oYear = document.createElement("select");
     oTD2.appendChild(this.oYear);
     this.oYear.oDatePicker = this;
     this.oYear.onchange = this.oYear.onkeyup = 
          function() { this.oDatePicker.onYear(); }

I did use Russian language and Russian date format because the need of the picker was for a Russian site. But the language and format the picker uses can be changed very simply - just change the array values and the "fill" method:

DatePicker.prototype.fill = function()
{
     // first clear all
     this.clear();
     // place the dates in the calendar
     var nRow = 0;
     var d = new Date(this.dt.getTime());
     var m = d.getMonth();
     for ( d.setDate(1); d.getMonth() == m; 
           d.setTime(d.getTime() + 86400000) ) {
        var nCol = d.getDay();
        if(nCol == 0) nCol = 7;
        nCol = nCol-1;
        this.aCells[nRow][nCol].innerHTML = d.getDate();
        if ( d.getDate() == this.dt.getDate() ) {
           this.aCells[nRow][nCol].className = 
                             'DatePickerBtnSelect';
        }
        if ( nCol == 6 ) nRow++;
     }
     // set the month combo
     this.oMonth.value = m;
     // set the year text
     this.oYear.value = this.dt.getFullYear();
}

That is all. I do really think the control is very useful.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

About the Author

Nikita D. Sinelnikoff

Web Developer

Russian Federation Russian Federation

Member



Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board. (secure sign-in)
 
Search this forum  
 FAQ
    Noise  Layout  Per page   
  Refresh
GeneralMy vote of 4 Pinmemberskmm8:47 29 Jul '10  
GeneralMy vote of 3 PinmemberramanarayananAsp6:35 8 Jul '10  
GeneralTwo Coordinated Dates Pinmemberkrishna1119:55 22 Apr '08  
GeneralEncapsulate this Class inside a Custom Control is done PinmemberStephan Pilz3:54 22 Sep '06  
Questionabout date control Pinmemberdisak19:14 22 Sep '06  
AnswerRe: about date control PinmemberStephan Pilz20:15 24 Sep '06  
GeneralRe: about date control Pinmemberdisak21:32 24 Sep '06  
GeneralRe: about date control PinmemberStephan Pilz23:03 24 Sep '06  
Sorry Disa,
 
Today I can't help you. The Control is for .NET only. But in ASP you can use the "original"-Code in this Article.
 
BR
Stephan
 
                   \\\|///
                 \\  - -  //
                  (  @ @  )
+---------------oOOo-(_)-oOOo-----------------+
| Stephan Pilz   stephan.pilz@stephan-pilz.de |
|                <a href=www.stephan-pilz.de>www.stephan-pilz.de</a>          |
|                ICQ#: 127823481              |
+-----------------------Oooo------------------+
                 oooO   (   )
                (   )    ) /
                 \ (    (_/
                  \_)

GeneralRe: Encapsulate this Class inside a Custom Control is done Pinmembershrirampophali21:19 29 Oct '07  
GeneralRe: Encapsulate this Class inside a Custom Control is done Pinmembershrirampophali21:20 29 Oct '07  
Questionabout javascript Pinmemberdisak1:14 22 Sep '06  
GeneralSomebody is ripping you off PinmemberWorkDoggy3:16 29 Aug '06  
AnswerRe: Somebody is ripping you off PinmemberStephan Pilz3:59 7 Sep '06  
GeneralRe: Somebody is ripping you off PinmemberGuyon A. Roche10:41 7 Sep '06  
AnswerRe: Somebody is ripping you off PinmemberWorkDoggy1:10 8 Sep '06  
GeneralRe: Somebody is ripping you off PinmemberGuyon A. Roche10:53 8 Sep '06  
GeneralRe: Somebody is ripping you off PinmemberStephan Pilz3:47 8 Sep '06  
NewsThe coolest date-time picker is here Pinmemberkan_izh22:20 27 Feb '06  
GeneralRe: The coolest date-time picker Pinmemberdisak1:32 22 Sep '06  
GeneralProvide us please with the proper encoding PinmemberJailorSubRuberoid2:36 21 Feb '06  
AnswerRe: Provide us please with the proper encoding PinmemberNikita D. Sinelnikoff1:22 24 Feb '06  
GeneralA Bugfix and some little extensions in Code PinmemberStephan Pilz20:33 20 Dec '05  
GeneralRe: A Bugfix and some little extensions in Code PinmemberGuyon A. Roche11:16 8 Sep '06  
GeneralRe: A Bugfix and some little extensions in Code PinmemberStephan Pilz3:52 22 Sep '06  
QuestionBase class? Pinmemberiammudman7:26 31 Oct '05  

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Mobile
Web03 | 2.5.120529.1 | Last Updated 24 Feb 2006
Article Copyright 2005 by Nikita D. Sinelnikoff
Everything else Copyright © CodeProject, 1999-2012
Terms of Use
Layout: fixed | fluid