天天看點

DropDownList 綁定資料庫

DropDownList1.DataSource=myReader;//myReader為ExecuteReader()的結果集

DropDownList1.DataTextField(DataValueField) = "填充在myReader中的資料集,用哪個列填充就寫哪個列名就ok 了";

DropDownList1.DataBind(); 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);

}