Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Javascript > Multiple datepicker

Reply
Thread Tools

Multiple datepicker

 
 
Simon Templar
Guest
Posts: n/a
 
      07-22-2004
Hi,

I am trying to introduce a multiple datepicker into a webpage and the
problem arises with the second picker. I tried to copy and adapt the code I
employed for the first one, renaming the variables but it is simply unable
to output any date to the database. The code for the first picker (which
works fine) is as follows:



<html>
<head>
<script type="text/javascript">

var numDays = {
'1': 31, '2': 28, '3': 31, '4': 30, '5': 31, '6': 30,
'7': 31, '8': 31, '9': 30, '10': 31, '11': 30, '12': 31
};

function setDays(oMonthSel, oDaysSel, oYearSel)
{
var nDays, oDaysSelLgth, opt, i = 1;
nDays = numDays[oMonthSel[oMonthSel.selectedIndex].value];
if (nDays == 28 && oYearSel[oYearSel.selectedIndex].value % 4 == 0)
++nDays;
oDaysSelLgth = oDaysSel.length;
if (nDays != oDaysSelLgth)
{
if (nDays < oDaysSelLgth)
oDaysSel.length = nDays;
else for (i; i < nDays - oDaysSelLgth + 1; i++)
{
opt = new Option(oDaysSelLgth + i, oDaysSelLgth + i);
oDaysSel.options[oDaysSel.length] = opt;
}
}
var oForm = oMonthSel.form;
var month = oMonthSel.options[oMonthSel.selectedIndex].value;
var day = oDaysSel.options[oDaysSel.selectedIndex].value;
var year = oYearSel.options[oYearSel.selectedIndex].value;
oForm.f_despara.value = month + '/' + day + '/' + year;
}
</head>
<body>
<form>
<table>
<tr>
<td>
<select name="day" class="buscar" id="day"
onChange="setDays(month,this,year)">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
<option selected>D&iacute;a</option>
</select></td>
<td><select name="month" class="buscar" id="month"
onchange="setDays(this,day,year)">
<option value="1">Enero</option>
<option value="2">Febrero</option>
<option value="3">Marzo</option>
<option value="4">Abril</option>
<option value="5">Mayo</option>
<option value="6">Junio</option>
<option value="7">Julio</option>
<option value="8">Agosto</option>
<option value="9">Septiembre</option>
<option value="10">Octubre</option>
<option value="11">Noviembre</option>
<option value="12">Diciembre</option>
<option selected>Mes</option>
</select></td>
<td><select name="year" class="buscar" id="year"
onchange="setDays(month,day,this)">
<option value="1995">1995</option>
<option value="1996">1996</option>
<option value="1997">1997</option>
<option value="1998">1998</option>
<option value="1999">1999</option>
<option value="2000">2000</option>
<option value="2001">2001</option>
<option value="2002">2002</option>
<option value="2003">2003</option>
<option value="2004">2004</option>
<option selected>A&ntilde;o</option>
</select>
<input type="hidden" name="f_despara" value="" />
</td>
</tr>
</table>
</form>
</body>
</html>




Then I tried to add a second date picker and never worked. I tried this way:
I added another function to the script:



function setDays2(oMonth2Sel, oDays2Sel, oYear2Sel)
{
var nDays2, oDays2SelLgth, opt2, i2 = 1;
nDays2 = numDays[oMonth2Sel[oMonth2Sel.selectedIndex].value];
if (nDays2 == 28 && oYear2Sel[oYear2Sel.selectedIndex].value % 4 == 0)
++nDays2;
oDays2SelLgth = oDays2Sel.length;
if (nDays2 != oDays2SelLgth)
{
if (nDays2 < oDays2SelLgth)
oDays2Sel.length = nDays2;
else for (i2; i2 < nDays2 - oDays2SelLgth + 1; i2++)
{
opt = new Option(oDays2SelLgth + i2, oDays2SelLgth + i2);
oDays2Sel.options[oDays2Sel.length] = opt2;
}
}
var oForm2 = oMonth2Sel.form;
var month2 = oMonth2Sel.options[oMonth2Sel.selectedIndex].value;
var day2 = oDays2Sel.options[oDays2Sel.selectedIndex].value;
var year2 = oYear2Sel.options[oYear2Sel.selectedIndex].value;
oForm.f_vac1.value = month2 + '/' + day2 + '/' + year2;
}



and then added the date picker fields to the form:



<tr>
<td><select name="day2" class="buscar" id="day2"
onChange="setDays2(month2,this,year2)">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
<option selected>D&iacute;a</option>
</select></td>
<td><select name="month2" class="buscar" id="month2"
onchange="setDays2(this,day2,year2)">
<option value="1">Enero</option>
<option value="2">Febrero</option>
<option value="3">Marzo</option>
<option value="4">Abril</option>
<option value="5">Mayo</option>
<option value="6">Junio</option>
<option value="7">Julio</option>
<option value="8">Agosto</option>
<option value="9">Septiembre</option>
<option value="10">Octubre</option>
<option value="11">Noviembre</option>
<option value="12">Diciembre</option>
<option selected>Mes</option>
</select></td>
<td><select name="year2" class="buscar" id="year2"
onchange="setDays2(month2,day2,this)">
<option value="1995">1995</option>
<option value="1996">1996</option>
<option value="1997">1997</option>
<option value="1998">1998</option>
<option value="1999">1999</option>
<option value="2000">2000</option>
<option value="2001">2001</option>
<option value="2002">2002</option>
<option value="2003">2003</option>
<option value="2004">2004</option>
<option selected>A&ntilde;o</option>
</select>
<input type="hidden" name="f_vac1" value="" />
</td>
</tr>



The script works well avoiding invalid date on the form but never passes the
value to the database.

Could someone help me?

Thanks in advance,

Gustavo


 
Reply With Quote
 
 
 
 
Thomas 'PointedEars' Lahn
Guest
Posts: n/a
 
      07-26-2004
Simon Templar wrote:
> <html>


This is not Valid HTML. <http://validator.w3.org/>

> <head>
> <script type="text/javascript">
>
> var numDays = {
> '1': 31, '2': 28,


In leap years, February has 29 days.

'3': 31, '4': 30, '5': 31, '6': 30,
> '7': 31, '8': 31, '9': 30, '10': 31, '11': 30, '12': 31
> };


The number of days a month has can be determined reliably (including
leap years) using Date objects:

/**
* Returns the number of days of a month.
*
* @author
* (C) 2004 Thomas Lahn <(E-Mail Removed)>
* @partof
* <http://pointedears.de/scripts/date.js>
* @argument Date d
* Date object to hold the month.
* @return type number
* The number of the days of the month,
* -1 if no Date object has been passed.
*/
function getDaysOfMonth(d)
{
if (d && d.constructor == Date)
{
// make a "copy" of the passed Date object so that it does not change
var y;
if (d.getFullYear)
{
y = d.getFullYear();
}
else
{
y = d.getYear();
if (y < 1900)
{
y += 1900;
}
}

var d2 = new Date(y, d.getMonth() + 1, d.getDate());

// the day before the first day of the next month
// is the last day of the current month
d2.setDate(0);

return d2.getDate();
}

return -1;
}


For the rest of your source code, I suggest you put a testcase in a Valid
HTML document (if it contains server-side scripting, put the source code
of that in an unparsed HTML document [.phps and the like] or a text file)
instead of dumping more than 200 uncommented (and some even unnecessary)
lines of it to a public newsgroup.


PointedEars
 
Reply With Quote
 
 
 
 
Dr John Stockton
Guest
Posts: n/a
 
      07-26-2004
JRS: In article <(E-Mail Removed)>, dated Mon, 26 Jul
2004 06:28:55, seen in news:comp.lang.javascript, Thomas 'PointedEars'
Lahn <(E-Mail Removed)> posted :
>Simon Templar wrote:


>> var numDays = {
>> '1': 31, '2': 28,

>
>In leap years, February has 29 days.


If you had troubled to read the Sainted one's code before responding,
you would have seen that he is aware of that; his code fully complies
with the Julian Calendar, AFAICS.


>
>'3': 31, '4': 30, '5': 31, '6': 30,
>> '7': 31, '8': 31, '9': 30, '10': 31, '11': 30, '12': 31
>> };

>
>The number of days a month has can be determined reliably (including
>leap years) using Date objects:
>
> /**
> * Returns the number of days of a month.


Only for fully-Gregorian months, of course.


> *
> * @author
> * (C) 2004 Thomas Lahn <(E-Mail Removed)>


YCKI.


> y = d.getYear();
> if (y < 1900)
> {
> y += 1900;
> }
> }


Incorrect in some systems. I have recently posted, and no-one has
refuted, a brief and reliable means of getting the full year from any
plausible getYear().


> d2.setDate(0);


Possible failure in Mac NS 4.




Recent discussion in this group should have indicated to you a
considerably quicker, and shorter, method.


Simon : see FAQ; it leads indirectly to
<URL:http://www.merlyn.demon.co.uk/js-date4.htm#MaYl> which has

function TailOfMonth(y, m) {
if (m==1) return 28 + (y%4 == 0) // 1901-2099
return [31,0,31,30,31,30, 31,31,30,31,30,31][m] }

which is rather like what you already have. On my system, it is about 5
times faster than the best I know using a Date Object, and that is
nearly twice as fast as one like what TL gave.

Modification for all Gregorian years should not slow it much.

BOTF.

--
John Stockton, Surrey, UK. ?@merlyn.demon.co.uk Turnpike v4.00 IE 4
<URL:http://jibbering.com/faq/> JL / RC : FAQ for news:comp.lang.javascript
<URL:http://www.merlyn.demon.co.uk/js-index.htm> jscr maths, dates, sources.
<URL:http://www.merlyn.demon.co.uk/> TP/BP/Delphi/jscr/&c, FAQ items, links.
 
Reply With Quote
 
Lasse Reichstein Nielsen
Guest
Posts: n/a
 
      07-26-2004
Thomas 'PointedEars' Lahn <(E-Mail Removed)> writes:

> function getDaysOfMonth(d)


Might as well pass the year and month number alone, no need for a full
date.

> if (d.getFullYear)


While getFullYear is convenient, you are no better off if it turns
out to be missing. Just do:
---
function getDaysOfMonth(year, month) { // month==1 is January
if (year >= 0 && year < 100) {
year += 100;
month -= 1200;
}
return new Date(year, month, 0).getDate();
}
---
The correction for year/month seems to be necessary, otherwise the
function will fail for the year 0, as it (and everything else between
0 and 99) will have 1900 added to the year. However, the year 0 was a
leap year (according to the Javascript the Date object), while 1900
wasn't.

/L
--
Lasse Reichstein Nielsen - http://www.velocityreviews.com/forums/(E-Mail Removed)
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'
 
Reply With Quote
 
Mick White
Guest
Posts: n/a
 
      07-26-2004
Dr John Stockton wrote:

> JRS: In article <(E-Mail Removed)>, dated Mon, 26 Jul
> 2004 06:28:55, seen in news:comp.lang.javascript, Thomas 'PointedEars'
> Lahn <(E-Mail Removed)> posted :
>
>>Simon Templar wrote:

>
>
>>>var numDays = {
>>>'1': 31, '2': 28,

>>
>>In leap years, February has 29 days.

>
>
> If you had troubled to read the Sainted one's code before responding,
> you would have seen that he is aware of that; his code fully complies
> with the Julian Calendar, AFAICS.
>
>
>
>>'3': 31, '4': 30, '5': 31, '6': 30,
>>
>>>'7': 31, '8': 31, '9': 30, '10': 31, '11': 30, '12': 31
>>>};

>>
>>The number of days a month has can be determined reliably (including
>>leap years) using Date objects:
>>
>> /**
>> * Returns the number of days of a month.

>
>
> Only for fully-Gregorian months, of course.
>
>
>
>> *
>> * @author
>> * (C) 2004 Thomas Lahn <(E-Mail Removed)>

>
>
> YCKI.
>
>
>
>> y = d.getYear();
>> if (y < 1900)
>> {
>> y += 1900;
>> }
>> }

>
>
> Incorrect in some systems. I have recently posted, and no-one has
> refuted, a brief and reliable means of getting the full year from any
> plausible getYear().
>
>
>
>> d2.setDate(0);

>
>
> Possible failure in Mac NS 4.
>
>
>
>
> Recent discussion in this group should have indicated to you a
> considerably quicker, and shorter, method.
>
>
> Simon : see FAQ; it leads indirectly to
> <URL:http://www.merlyn.demon.co.uk/js-date4.htm#MaYl> which has
>
> function TailOfMonth(y, m) {
> if (m==1) return 28 + (y%4 == 0) // 1901-2099
> return [31,0,31,30,31,30, 31,31,30,31,30,31][m] }



function TailOfMonth(y, m) {
return [31,y%4 == 0?29:28,31,30,31,30, 31,31,30,31,30,31][m] }

Mick

>
> which is rather like what you already have. On my system, it is about 5
> times faster than the best I know using a Date Object, and that is
> nearly twice as fast as one like what TL gave.
>
> Modification for all Gregorian years should not slow it much.
>
> BOTF.
>

 
Reply With Quote
 
Lasse Reichstein Nielsen
Guest
Posts: n/a
 
      07-26-2004
Dr John Stockton <(E-Mail Removed)> writes:

> function TailOfMonth(y, m) {
> if (m==1) return 28 + (y%4 == 0) // 1901-2099
> return [31,0,31,30,31,30, 31,31,30,31,30,31][m] }
>
> which is rather like what you already have. On my system, it is about 5
> times faster than the best I know using a Date Object, and that is
> nearly twice as fast as one like what TL gave.


In my versions of IE, Opera, that versions is about as
fast as the Date based version I suggested (not entirely sure for
Mozilla, because it asked me if I wanted to stop the script because it
had run too long .. but it seems the Date object is *very* slow).

If speed is of the essence, not creating an array for each call is a
great saving in both Mozilla and Opera (and is marginally faster in IE
as well). This version:

var months = [31,,31,30,31,30,31,31,30,31,30,31];
function lengthOfMonth(y,m) { // m==0 is January
return arr[m] || ((!(y%4) && (!!(y%25) || !(y%400)))+2;
}

is very fast in both Opera and Mozilla (in a loop, it takes almost no
time over a no-op function), and it isn't slower in IE.

/L
--
Lasse Reichstein Nielsen - (E-Mail Removed)
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'
 
Reply With Quote
 
Dr John Stockton
Guest
Posts: n/a
 
      07-26-2004
JRS: In article <(E-Mail Removed)>, dated Mon, 26 Jul 2004
19:02:04, seen in news:comp.lang.javascript, Lasse Reichstein Nielsen
<(E-Mail Removed)> posted :
>Thomas 'PointedEars' Lahn <(E-Mail Removed)> writes:
>
>> function getDaysOfMonth(d)

>
>Might as well pass the year and month number alone, no need for a full
>date.
>
>> if (d.getFullYear)

>
>While getFullYear is convenient, you are no better off if it turns
>out to be missing. Just do:
>---
> function getDaysOfMonth(year, month) { // month==1 is January
> if (year >= 0 && year < 100) {
> year += 100;
> month -= 1200;
> }
> return new Date(year, month, 0).getDate();
> }
>---
>The correction for year/month seems to be necessary, otherwise the
>function will fail for the year 0, as it (and everything else between
>0 and 99) will have 1900 added to the year. However, the year 0 was a
>leap year (according to the Javascript the Date object), while 1900
>wasn't.


The correction is over-complex, since for this purpose it is only
necessary to add 400 years (and only for February; and only for Year 0,
I think). The year only needs to be correct modulo 400.

Or add a multiple thereof; so, since there is probably little interest
in month-lengths before BC 10000 or after AD 250000, the best is just to
add 10000 years unconditionally - assuming that new Date is sensibly
written.

Year 0 (BC 1) was a leap year on the Gregorian & Julian calendars; but
not in actuality, since the Romans had been bad at counting up to 4.


For y >= 0, full Gregorian,

function LastOfMonth(y, m) { // m = 0..11 // new, undertested.
if (m==1) return 29 - ( y & 3 || y & 15 && !(y % 25) ) // ~ CGjrs
return [31,0,31,30,31,30, 31,31,30,31,30,31][m] }

--
John Stockton, Surrey, UK. ?@merlyn.demon.co.uk Turnpike v4.00 MIME.
Web <URL:http://www.merlyn.demon.co.uk/> - w. FAQish topics, links, acronyms
PAS EXE etc : <URL:http://www.merlyn.demon.co.uk/programs/> - see 00index.htm
Dates - miscdate.htm moredate.htm js-dates.htm pas-time.htm critdate.htm etc.
 
Reply With Quote
 
Lasse Reichstein Nielsen
Guest
Posts: n/a
 
      07-26-2004
Dr John Stockton <(E-Mail Removed)> writes:

> The correction is over-complex,


Absolutely.

> since for this purpose it is only necessary to add 400 years (and
> only for February; and only for Year 0, I think). The year only
> needs to be correct modulo 400.


Indeed. Only the year 0 fails, because only years between 0 and 99
are affected by the year-rewriting, and of those, only 0 differst
from the year + 1900.

The reason (well, excuse) for doing it this way was to not need to
know how the month lengths are calculated. That is left entirely
up to the Date object. The only rewriting was to avoid the problem
with years 0-99 as arguments to the constructor.

> For y >= 0, full Gregorian,
>
> function LastOfMonth(y, m) { // m = 0..11 // new, undertested.
> if (m==1) return 29 - ( y & 3 || y & 15 && !(y % 25) ) // ~ CGjrs
> return [31,0,31,30,31,30, 31,31,30,31,30,31][m] }


Except
LastOfMonth(2002,1) == 27
and
LastOfMonth(2003,1) == 26
since (y&3) becomes 2 and 3 in those years. If you change it to:

function LastOfMonth(y, m) { // m = 0..11 // new, undertested.
if (m==1) return 29 - ( !!(y & 3) || y & 15 && !(y % 25) ) // ~ CGjrs
return [31,0,31,30,31,30, 31,31,30,31,30,31][m] }

then it seems to work (the bit-fiddling is impressive .

For efficiency, you only need to do the extra calculation for m == 1.

/L
--
Lasse Reichstein Nielsen - (E-Mail Removed)
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'
 
Reply With Quote
 
Dr John Stockton
Guest
Posts: n/a
 
      07-27-2004
JRS: In article <(E-Mail Removed)>, dated Tue, 27 Jul 2004
01:01:25, seen in news:comp.lang.javascript, Lasse Reichstein Nielsen
<(E-Mail Removed)> posted :
>Dr John Stockton <(E-Mail Removed)> writes:
>
>> The correction is over-complex,

>
>Absolutely.
>
>> since for this purpose it is only necessary to add 400 years (and
>> only for February; and only for Year 0, I think). The year only
>> needs to be correct modulo 400.

>
>Indeed. Only the year 0 fails, because only years between 0 and 99
>are affected by the year-rewriting, and of those, only 0 differst
>from the year + 1900.
>
>The reason (well, excuse) for doing it this way was to not need to
>know how the month lengths are calculated. That is left entirely
>up to the Date object. The only rewriting was to avoid the problem
>with years 0-99 as arguments to the constructor.
>
>> For y >= 0, full Gregorian,
>>
>> function LastOfMonth(y, m) { // m = 0..11 // new, undertested.
>> if (m==1) return 29 - ( y & 3 || y & 15 && !(y % 25) ) // ~ CGjrs
>> return [31,0,31,30,31,30, 31,31,30,31,30,31][m] }

>
>Except
> LastOfMonth(2002,1) == 27
>and
> LastOfMonth(2003,1) == 26
>since (y&3) becomes 2 and 3 in those years. If you change it to:
>
> function LastOfMonth(y, m) { // m = 0..11 // new, undertested.
> if (m==1) return 29 - ( !!(y & 3) || y & 15 && !(y % 25) ) // ~ CGjrs
> return [31,0,31,30,31,30, 31,31,30,31,30,31][m] }
>
>then it seems to work (the bit-fiddling is impressive .



Yes, the tests that were exhaustive enough for the older methods proved
inadequate. I now test every month in 400 years, for safety.

29 - !! ( y & 3 || y & 15 && !(y % 25) )

looks nicer to me, and tests OK in js-dates4.htm. Thanks.


JRS: In article <(E-Mail Removed)>, dated Mon, 26 Jul 2004
21:56:53, seen in news:comp.lang.javascript, Lasse Reichstein Nielsen
<(E-Mail Removed)> posted :

>If speed is of the essence, not creating an array for each call is a
>great saving in both Mozilla and Opera (and is marginally faster in IE
>as well).


That will take a while to put neatly into page 4; I have several very
similar arrays, and only the unnecessary differences can be ignored in
merging them.

--
John Stockton, Surrey, UK. ?@merlyn.demon.co.uk Turnpike v4.00 IE 4
<URL:http://jibbering.com/faq/> JL / RC : FAQ for news:comp.lang.javascript
<URL:http://www.merlyn.demon.co.uk/js-index.htm> jscr maths, dates, sources.
<URL:http://www.merlyn.demon.co.uk/> TP/BP/Delphi/jscr/&c, FAQ items, links.
 
Reply With Quote
 
rh
Guest
Posts: n/a
 
      07-28-2004
Dr John Stockton <(E-Mail Removed)> wrote:

> JRS: In article <(E-Mail Removed)>, dated Mon, 26 Jul 2004
> 21:56:53, seen in news:comp.lang.javascript, Lasse Reichstein Nielsen
> <(E-Mail Removed)> posted :
>
> >If speed is of the essence, not creating an array for each call is a
> >great saving in both Mozilla and Opera (and is marginally faster in IE
> >as well).

>


You may also wish to consider something along the lines of:

function LastOfMonth(y, m) { // m = 0..11
return 29 + (m*31/12 | 0) - ((m-1)*31/12 | 0) + !m
- ( !! (m-1) || 2
+ ( !!((y & 3) || y & 15 && !(y % 25) )) ) ; // ~ CGjrs }

which cadges from Zeller (at the very least, makes use of a function I
came across a couple of years ago in an implementation of Zeller's
congruence). It's considerably more efficient than creating the lookup
array within the js function, but will be slower (although perhaps
still not all that much slower) than your table lookup with the array
created outside.

../rh
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Where is DatePicker Control in VS.Net 2005 ? Luqman ASP .Net 1 02-07-2006 08:27 PM
DatePicker? flipdoubt ASP .Net 2 08-27-2005 07:14 PM
DatePicker control in Asp.net ? WJ ASP .Net 2 11-21-2004 03:42 PM
[ANN]Web DatePicker for JSP/Servlet 1.0 Released. Sunwest Technologies Java 0 06-07-2004 04:27 PM
datepicker help needed TJS ASP .Net 2 10-30-2003 03:46 PM



Advertisments