Here is modified Code in C#
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.PopulateYears(2000, ddlStartYear);
this.PopulateMonths(1, ddlStartMonth);
this.PopulateDays(1, ddlStartDay);
}
}
protected void ddlStartYear_SelectedIndexChanged(object sender, EventArgs e)
{
PopulateYears(int.Parse(this.ddlStartYear.SelectedItem.Value), ddlEndYear);
}
protected void ddlStartMonth_SelectedIndexChanged(object sender, EventArgs e)
{
this.PopulateMonths(int.Parse(this.ddlStartMonth.SelectedItem.Value), this.ddlEndMonth);
this.PopulateDays(1, this.ddlStartDay);
}
protected void ddlStartDay_SelectedIndexChanged(object sender, EventArgs e)
{
this.PopulateDays(int.Parse(this.ddlStartDay.SelectedItem.Value), this.ddlEndDay);
}
private void PopulateYears(int startValue, DropDownList ddl)
{
int finalYear;
if (ddl == this.ddlEndYear)
{
finalYear = startValue + 2;
}
else
{
finalYear = DateTime.Today.Year;
}
List<ListItem> data = new List<ListItem>();
for (int startingValue = startValue; finalYear >= startingValue; startingValue++)
{
data.Add(new ListItem { Text = startingValue.ToString(), Value = startingValue.ToString() });
}
ddl.DataSource = data;
ddl.DataBind();
}
private void PopulateMonths(int startMotnth, DropDownList ddl)
{
int finalMonth;
if (ddl == this.ddlEndMonth)
{
finalMonth = startMotnth + 2; ;
}
else
{
finalMonth = 12;
}
List<ListItem> months = new List<ListItem>();
for (int startingValue = startMotnth; startingValue <= finalMonth; startingValue++)
{
string monthName = this.GetMonthName(startingValue);
months.Add(new ListItem { Text = monthName, Value = startingValue.ToString() });
}
ddl.DataSource = months;
ddl.DataTextField = "Text";
ddl.DataValueField = "Value";
ddl.DataBind();
}
private void PopulateDays(int startDay, DropDownList ddl)
{
int finalDays;
finalDays = DateTime.DaysInMonth(int.Parse(this.ddlStartYear.SelectedItem.Value), int.Parse(this.ddlStartMonth.SelectedItem.Value));
List<ListItem> days = new List<ListItem>();
for (int startingValue = startDay; startingValue <= finalDays; startingValue++)
{
days.Add(new ListItem { Text = startingValue.ToString(), Value = startingValue.ToString() });
}
ddl.DataSource = days;
ddl.DataBind();
if (ddl == this.ddlEndDay)
{
ddl.Items.FindByValue(this.ddlStartDay.SelectedItem.Value).Selected = true;
}
}
private string GetMonthName(int monthValue)
{
return (new DateTime(0001, monthValue, 01)).ToString("MMMM");
}