ASP.NET DropDownLists with day / month / year values

I recently had to add date selection dropdowns on a webform and was surprised that a few minutes of Googling didn't write my code for me. I wrote a quick console app to do it. Here's the code, along with dropdowns for month, day, and year.

using System;
using System.Collections;

public class Util
{
 
public static void Main()
 {
  
string output = string.Empty;
  
int start;
  
int end;

  Console.WriteLine("enter starting index (default 1):");
  
try {start = int.Parse(Console.ReadLine());}
  
catch {start = 1;};

  Console.WriteLine("enter ending index (default 10):");
  
try {end = int.Parse(Console.ReadLine());}
  
catch {end = 10;};

  
for(int i = start; i<(end+1); i++)
  {
   output += 
string.Format("<asp:ListItem Value=\"{0}\"></asp:ListItem>\n",i);
  }
  Console.WriteLine(output);
  Console.WriteLine("copying to clipboard...");
  System.Windows.Forms.Clipboard.SetDataObject(output, 
true);
  Console.WriteLine("press enter to exit");
  Console.ReadLine();
 }
}

But no one should have to write that code. Here are some simple dropdowns with day, month, and year values:

<asp:dropdownlist id="drpBirthMonth" Runat="server">
 <asp:ListItem 
Selected="True" Value="1">Jan</asp:ListItem>
 <asp:ListItem 
Value="2">Feb</asp:ListItem>
 <asp:ListItem 
Value="3">Mar</asp:ListItem>
 <asp:ListItem 
Value="4">Apr</asp:ListItem>
 <asp:ListItem 
Value="5">May</asp:ListItem>
 <asp:ListItem 
Value="6">Jun</asp:ListItem>
 <asp:ListItem 
Value="7">Jul</asp:ListItem>
 <asp:ListItem 
Value="8">Aug</asp:ListItem>
 <asp:ListItem 
Value="9">Sep</asp:ListItem>
 <asp:ListItem 
Value="10">Oct</asp:ListItem>
 <asp:ListItem 
Value="11">Nov</asp:ListItem>
 <asp:ListItem 
Value="12">Dec</asp:ListItem>
<
/asp:dropdownlist>

<asp:dropdownlist id="drpBirthDay" Runat="server">
 <asp:ListItem 
Selected="True" Value="1"></asp:ListItem>
 <asp:ListItem 
Value="2"></asp:ListItem>
 <asp:ListItem 
Value="3"></asp:ListItem>
 <asp:ListItem 
Value="4"></asp:ListItem>
 <asp:ListItem 
Value="5"></asp:ListItem>
 <asp:ListItem 
Value="6"></asp:ListItem>
 <asp:ListItem 
Value="7"></asp:ListItem>
 <asp:ListItem 
Value="8"></asp:ListItem>
 <asp:ListItem 
Value="9"></asp:ListItem>
 <asp:ListItem 
Value="10"></asp:ListItem>
 <asp:ListItem 
Value="11"></asp:ListItem>
 <asp:ListItem 
Value="12"></asp:ListItem>
 <asp:ListItem 
Value="13"></asp:ListItem>
 <asp:ListItem 
Value="14"></asp:ListItem>
 <asp:ListItem 
Value="15"></asp:ListItem>
 <asp:ListItem 
Value="16"></asp:ListItem>
 <asp:ListItem 
Value="17"></asp:ListItem>
 <asp:ListItem 
Value="18"></asp:ListItem>
 <asp:ListItem 
Value="19"></asp:ListItem>
 <asp:ListItem 
Value="20"></asp:ListItem>
 <asp:ListItem 
Value="21"></asp:ListItem>
 <asp:ListItem 
Value="22"></asp:ListItem>
 <asp:ListItem 
Value="23"></asp:ListItem>
 <asp:ListItem 
Value="24"></asp:ListItem>
 <asp:ListItem 
Value="25"></asp:ListItem>
 <asp:ListItem 
Value="26"></asp:ListItem>
 <asp:ListItem 
Value="27"></asp:ListItem>
 <asp:ListItem 
Value="28"></asp:ListItem>
 <asp:ListItem 
Value="29"></asp:ListItem>
 <asp:ListItem 
Value="30"></asp:ListItem>
 <asp:ListItem 
Value="31"></asp:ListItem>
<
/asp:dropdownlist>

 

<asp:dropdownlist id="drpBirthYear" runat="server">
 <asp:ListItem 
Value="1950">1950</asp:ListItem>
 <asp:ListItem 
Value="1951">1951</asp:ListItem>
 <asp:ListItem 
Value="1952">1952</asp:ListItem>
 <asp:ListItem 
Value="1953">1953</asp:ListItem>
 <asp:ListItem 
Value="1954">1954</asp:ListItem>
 <asp:ListItem 
Value="1955">1955</asp:ListItem>
 <asp:ListItem 
Value="1956">1956</asp:ListItem>
 <asp:ListItem 
Value="1957">1957</asp:ListItem>
 <asp:ListItem 
Value="1958">1958</asp:ListItem>
 <asp:ListItem 
Value="1959">1959</asp:ListItem>
 <asp:ListItem 
Value="1960">1960</asp:ListItem>
 <asp:ListItem 
Value="1961">1961</asp:ListItem>
 <asp:ListItem 
Value="1962">1962</asp:ListItem>
 <asp:ListItem 
Value="1963">1963</asp:ListItem>
 <asp:ListItem 
Value="1964">1964</asp:ListItem>
 <asp:ListItem 
Value="1965">1965</asp:ListItem>
 <asp:ListItem 
Value="1966">1966</asp:ListItem>
 <asp:ListItem 
Value="1967">1967</asp:ListItem>
 <asp:ListItem 
Value="1968">1968</asp:ListItem>
 <asp:ListItem 
Value="1969">1969</asp:ListItem>
 <asp:ListItem 
Value="1970" Selected="True">1970</asp:ListItem>
 <asp:ListItem 
Value="1971">1971</asp:ListItem>
 <asp:ListItem 
Value="1972">1972</asp:ListItem>
 <asp:ListItem 
Value="1973">1973</asp:ListItem>
 <asp:ListItem 
Value="1974">1974</asp:ListItem>
 <asp:ListItem 
Value="1975">1975</asp:ListItem>
 <asp:ListItem 
Value="1976">1976</asp:ListItem>
 <asp:ListItem 
Value="1977">1977</asp:ListItem>
 <asp:ListItem 
Value="1978">1978</asp:ListItem>
 <asp:ListItem 
Value="1979">1979</asp:ListItem>
 <asp:ListItem 
Value="1980">1980</asp:ListItem>
 <asp:ListItem 
Value="1981">1981</asp:ListItem>
 <asp:ListItem 
Value="1982">1982</asp:ListItem>
 <asp:ListItem 
Value="1983">1983</asp:ListItem>
 <asp:ListItem 
Value="1984">1984</asp:ListItem>
 <asp:ListItem 
Value="1985">1985</asp:ListItem>
 <asp:ListItem 
Value="1986">1986</asp:ListItem>
 <asp:ListItem 
Value="1987">1987</asp:ListItem>
 <asp:ListItem 
Value="1988">1988</asp:ListItem>
 <asp:ListItem 
Value="1989">1989</asp:ListItem>
 <asp:ListItem 
Value="1990">1990</asp:ListItem>
 <asp:ListItem 
Value="1991">1991</asp:ListItem>
 <asp:ListItem 
Value="1992">1992</asp:ListItem>
 <asp:ListItem 
Value="1993">1993</asp:ListItem>
 <asp:ListItem 
Value="1994">1994</asp:ListItem>
 <asp:ListItem 
Value="1995">1995</asp:ListItem>
<
/asp:dropdownlist>

5 Comments

  • Thanks for posting this. It definitely made my day a bit easier!
    Jacque

  • Thanks allot for posting this! As Jacque said before, you made my day a bit easier!

    ~ Richard

  • Thanks for this post.It really helped allot

  • Thanks for this post.i think instead for making static value in drop we can have dynamic value :)

  • What about the days in the month? How do you constrain them when you hit a month with only 30 days, or February with only 28 days? Worse yet, how about February during a leap year?

    You should be disabling the drop down with the days and fire an asynchronous call to populate the days once the month and year have been selected. On the back end, .Net provides you with System.DateTime.DaysInMonth([int year], [int month]); Return the values of this in xml and use xslt on the browser side when the values are returned to translate the xml into HTML.

Comments have been disabled for this content.