ASP.NET中DropDownList下拉框列表控件绑定数据的4种方法
DropDownListWeb服务器控件使用户能够从预定义的列表中选择一项。它与ListBoxWeb服务器控件的不同之处在于,其项列表在用户单击下拉按钮之前一直处于隐藏状态。另外,DropDownList控件与ListBox控件的不同之处还在于它不支持多重选择模式。
DropDownList在html中的呈现对应的是select,下面让我们来看一下DropDownList绑定数据的几种方法。
一、把Array数组绑到DropDownList
string[]Month=newstring[7]{"January","February","March","April","May","June","July"};
this.DropDownList1.DataSource=Month;
this.DropDownList1.DataBind();
这种方法只可以绑定一组数据到DropDownList,因为DropDownList可以绑定两种数据:1是DataTextField、2是DataValueField,所以第一种方法绑定后DataTextField的值==DataTextField值。
二、把动态Array数组绑定到DropDownList
ArrayListar=newArrayList();
for(inti=1;i<=12;i++)
{
   ar.Add(i+"月");
}
this.DropDownList2.DataSource=ar;
this.DropDownList2.DataBind();
本质上就是讲1到12月加到数组中,如下:
ArrayListar=newArrayList();
ar.Add("1月");
ar.Add("2月");
ar.Add("3月");
ar.Add("4月");
...
this.DropDownList2.DataSource=ar;
this.DropDownList2.DataBind();
这种方法的好处是通过ArrayList.Add的方法,可以实现动态添加元素的功能,比方说,有一个DataTable,我们要把DataTable中一行的数据读出来添加到Arraylist当中。
看我以下的示的代码
ArrayListar=newArrayList();
DataTabledt=dataset.Tables[0]
foreach(DataRowdrindt.Rows)
{
   ar.Add(dr[0].ToString());
}
以上代码从一个DataTable中通过foreach语句循环读取Table中一行数据中第一个格的值添加到ArrayList当中。
三、将Hashtable绑定到Dropdownlist当中Hashtable的方法的好处是,它也可以绑定两种数据一个是"key,一个是"value",这样的话,我们就可以为dropdonwlist绑定上两种不同的数据了。
HashtableHt=newHashtable();
Ht.Add("January","1月");
Ht.Add("February","2月");
Ht.Add("March","3月");
Ht.Add("April","4月");
Ht.Add("May","5月");
Ht.Add("June","6月");
Ht.Add("July","7月");
this.DropDownList3.DataSource=Ht;
this.DropDownList3.DataValueField="key";
this.DropDownList3.DataTextField="value";
this.DropDownList3.DataBind();
四、把Object对象绑定到dropdownlist
首先新增一个类,结构如下
publicclassClassMonth
{
   privatestring_MonthEN=DateTime.Now.ToString("MMMM",System.Globalization.CultureInfo.CreateSpecificCulture("en"));
   privatestring_MonthCN=DateTime.Now.ToString("MMMM",System.Globalization.CultureInfo.CreateSpecificCulture("zh-CN"));
   publicClassMonth()
   {
       MonthCN=DateTime.Now.ToString("MMMM",System.Globalization.CultureInfo.CreateSpecificCulture("zh-CN"));
       MonthEN=DateTime.Now.ToString("MMMM",System.Globalization.CultureInfo.CreateSpecificCulture("en"));
   }
   publicClassMonth(stringcn,stringen)
   {
       MonthCN=cn;//导入变量为属性赋值
       MonthEN=en;//导入变量为属性赋值
       
   }
   publicstringMonthEN//构造属性
   {
      get
       {
           return_MonthEN;
       }
       set
       {
           _MonthEN=value;
       }
   }
   publicstringMonthCN //构造属性
   {
       get
       {
           return_MonthCN;
       }
       set
       {
           _MonthCN=value;
       }
   }
}
绑定方法
ArrayListarlist=newArrayList();
arlist.Add(newClassMonth("1月","January"));
arlist.Add(newClassMonth("2月","February"));
arlist.Add(newClassMonth("3月","March"));
arlist.Add(newClassMonth("4月","April"));
arlist.Add(newClassMonth("5月","May"));
this.DropDownList4.DataSource=arlist;
this.DropDownList4.DataValueField="MonthEN";
this.DropDownList4.DataTextField="MonthCN";
this.DropDownList4.DataBind();