用三个DropDownList控件选择年月日【转】
2004-08-13 00:10
405 查看
aspx页面上有三个DropDownList控件,
DropDownList1 表示年,DropDownList2表示月,DropDownList3表示天;
注意用将这三个DropDownList控件的AutoPostBack属性设为True。
用户可以方便地选择年月日,并且每月的日期会随着用户选择不同的年,月而发生相应的变化
其后台cs文件代码如下:
private void Page_Load(object sender, System.EventArgs e)
{
DateTime tnow=DateTime.Now;//现在时间
ArrayList AlYear=new ArrayList();
int i;
for(i=2002;i<=2010;i++)
AlYear.Add(i);
ArrayList AlMonth=new ArrayList();
for(i=1;i<=12;i++)
AlMonth.Add(i);
if(!this.IsPostBack )
{
DropDownList1.DataSource=AlYear;
DropDownList1.DataBind();//绑定年
//选择当前年
DropDownList1.SelectedValue=tnow.Year.ToString();
DropDownList2.DataSource=AlMonth;
DropDownList2.DataBind();//绑定月
//选择当前月
DropDownList2.SelectedValue=tnow.Month.ToString();
int year,month;
year=Int32.Parse(DropDownList1.SelectedValue);
month=Int32.Parse(DropDownList2.SelectedValue);
BindDays(year,month);//绑定天
//选择当前日期
DropDownList3.SelectedValue=tnow.Day.ToString();
}
}
//判断闰年
private bool CheckLeap(int year)
{
if((year%4==0)&&(year%100!=0)||(year%400==0))
return true;
else return false;
}
//绑定每月的天数
private void BindDays( int year,int month)
{ int i;
ArrayList AlDay=new ArrayList();
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
for(i=1;i<=31;i++)
AlDay.Add(i);
break;
case 2:
if (CheckLeap(year))
{for(i=1;i<=29;i++)
AlDay.Add(i);}
else
{for(i=1;i<=28;i++)
AlDay.Add(i);}
break;
case 4:
case 6:
case 9:
case 11:
for(i=1;i<=30;i++)
AlDay.Add(i);
break;
}
DropDownList3.DataSource=AlDay;
DropDownList3.DataBind();
}
//选择年
private void DropDownList1_SelectedIndexChanged(object sender, System.EventArgs e)
{
int year,month;
year=Int32.Parse(DropDownList1.SelectedValue);
month=Int32.Parse(DropDownList2.SelectedValue);
BindDays(year,month);
}
//选择月
private void DropDownList2_SelectedIndexChanged(object sender, System.EventArgs e)
{
int year,month;
year=Int32.Parse(DropDownList1.SelectedValue);
month=Int32.Parse(DropDownList2.SelectedValue);
BindDays(year,month);
}
DropDownList1 表示年,DropDownList2表示月,DropDownList3表示天;
注意用将这三个DropDownList控件的AutoPostBack属性设为True。
用户可以方便地选择年月日,并且每月的日期会随着用户选择不同的年,月而发生相应的变化
其后台cs文件代码如下:
private void Page_Load(object sender, System.EventArgs e)
{
DateTime tnow=DateTime.Now;//现在时间
ArrayList AlYear=new ArrayList();
int i;
for(i=2002;i<=2010;i++)
AlYear.Add(i);
ArrayList AlMonth=new ArrayList();
for(i=1;i<=12;i++)
AlMonth.Add(i);
if(!this.IsPostBack )
{
DropDownList1.DataSource=AlYear;
DropDownList1.DataBind();//绑定年
//选择当前年
DropDownList1.SelectedValue=tnow.Year.ToString();
DropDownList2.DataSource=AlMonth;
DropDownList2.DataBind();//绑定月
//选择当前月
DropDownList2.SelectedValue=tnow.Month.ToString();
int year,month;
year=Int32.Parse(DropDownList1.SelectedValue);
month=Int32.Parse(DropDownList2.SelectedValue);
BindDays(year,month);//绑定天
//选择当前日期
DropDownList3.SelectedValue=tnow.Day.ToString();
}
}
//判断闰年
private bool CheckLeap(int year)
{
if((year%4==0)&&(year%100!=0)||(year%400==0))
return true;
else return false;
}
//绑定每月的天数
private void BindDays( int year,int month)
{ int i;
ArrayList AlDay=new ArrayList();
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
for(i=1;i<=31;i++)
AlDay.Add(i);
break;
case 2:
if (CheckLeap(year))
{for(i=1;i<=29;i++)
AlDay.Add(i);}
else
{for(i=1;i<=28;i++)
AlDay.Add(i);}
break;
case 4:
case 6:
case 9:
case 11:
for(i=1;i<=30;i++)
AlDay.Add(i);
break;
}
DropDownList3.DataSource=AlDay;
DropDownList3.DataBind();
}
//选择年
private void DropDownList1_SelectedIndexChanged(object sender, System.EventArgs e)
{
int year,month;
year=Int32.Parse(DropDownList1.SelectedValue);
month=Int32.Parse(DropDownList2.SelectedValue);
BindDays(year,month);
}
//选择月
private void DropDownList2_SelectedIndexChanged(object sender, System.EventArgs e)
{
int year,month;
year=Int32.Parse(DropDownList1.SelectedValue);
month=Int32.Parse(DropDownList2.SelectedValue);
BindDays(year,month);
}
相关文章推荐
- 在ASP.NET中用三个DropDownList控件方便的选择年月日
- 在ASP.NET中用三个DropDownList控件方便的选择年月日【原创】
- 在ASP.NET中用三个DropDownList控件方便的选择年月日
- ASP.NET中用三个DropDownList控件方便的选择年月日
- 在ASP.NET中用三个DropDownList控件方便的选择日期
- 关于.net中的dropdownlist控件绑定hashtable和时间控件选择问题
- Dropdownlist无刷新年月日选择
- 选择年月日控件YMDatePickerDialog
- daterangepicker控件选择年月日时分秒
- ASP.NET中如何让DropDownList控件既能做选择又能做输入用(转载)
- ASP.NET中DropDownList控件的简单使用--DDL绑定数据库表中值,选择DDL中值直接检索数据
- DropDownList控件的AutoPostBack属性的问题 选择后,值也跟着刷新
- dropdownlist未选择时的判断的小技巧:使用comparevalidator控件
- 日历控件(可以选择年月日小时分秒)
- JQuery中_Radio、DropDownList、Checkbox选择控件的处理
- DropDownList连动选择时出现 "Eval()、XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件的上下文中使用" 的错误
- BCG界面控件三个产品的功能比较,供大家参考选择
- 如何解决FormView中实现DropDownList连动选择时出现 "Eval()、XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件的上下文中使用" 的错误
- .NET中将DropDownList控件所选择的值传递到另一个页面
- js 获取asp 控件DropDownList的选择值,及所有的text和value