ASP.NET中DropDownList下拉框列表控件绑定数据的4种方法
程序员文章站
2023-12-19 12:54:40
dropdownlist web 服务器控件使用户能够从预定义的列表中选择一项。它与 listbox web 服务器控件的不同之处在于,其项列表在用户单击下拉按钮之前一直处...
dropdownlist web 服务器控件使用户能够从预定义的列表中选择一项。它与 listbox web 服务器控件的不同之处在于,其项列表在用户单击下拉按钮之前一直处于隐藏状态。另外,dropdownlist 控件与 listbox 控件的不同之处还在于它不支持多重选择模式。
dropdownlist在html中的呈现对应的是select,下面让我们来看一下dropdownlist绑定数据的几种方法。
一、把array数组绑到dropdownlist
复制代码 代码如下:
string[] month =new string[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
复制代码 代码如下:
arraylist ar = new arraylist();
for (int i = 1; i <=12; i++)
{
ar.add(i+"月");
}
this.dropdownlist2.datasource = ar;
this.dropdownlist2.databind();
本质上就是讲1到12月加到数组中,如下:
复制代码 代码如下:
arraylist ar = new arraylist();
ar.add("1月");
ar.add("2月");
ar.add("3月");
ar.add("4月");
...
this.dropdownlist2.datasource = ar;
this.dropdownlist2.databind();
这种方法的好处是通过arraylist.add的方法,可以实现动态添加元素的功能,比方说,有一个datatable,我们要把datatable中一行的数据读出来添加到arraylist当中。
看我以下的示的代码
复制代码 代码如下:
arraylist ar = new arraylist();
datatable dt=dataset.tables[0]
foreach (datarow dr in dt.rows)
{
ar.add(dr[0].tostring());
}
以上代码从一个datatable中通过foreach语句循环读取table中一行数据中第一个格的值添加到arraylist当中。
三、将hashtable绑定到dropdownlist当中hashtable的方法的好处是,它也可以绑定两种数据一个是"key,一个是"value",这样的话,我们就可以为dropdonwlist绑定上两种不同的数据了。
复制代码 代码如下:
hashtable ht = new hashtable();
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
首先新增一个类,结构如下
复制代码 代码如下:
public class classmonth
{
private string _monthen = datetime.now.tostring("mmmm",system.globalization.cultureinfo.createspecificculture("en"));
private string _monthcn = datetime.now.tostring("mmmm", system.globalization.cultureinfo.createspecificculture("zh-cn"));
public classmonth()
{
monthcn = datetime.now.tostring("mmmm", system.globalization.cultureinfo.createspecificculture("zh-cn"));
monthen = datetime.now.tostring("mmmm", system.globalization.cultureinfo.createspecificculture("en"));
}
public classmonth(string cn,string en)
{
monthcn = cn;//导入变量为属性赋值
monthen = en;//导入变量为属性赋值
}
public string monthen //构造属性
{
get
{
return _monthen;
}
set
{
_monthen = value;
}
}
public string monthcn //构造属性
{
get
{
return _monthcn;
}
set
{
_monthcn = value;
}
}
}
绑定方法
复制代码 代码如下:
arraylist arlist=new arraylist();
arlist.add(new classmonth("1月", "january"));
arlist.add(new classmonth("2月", "february"));
arlist.add(new classmonth("3月", "march"));
arlist.add(new classmonth("4月", "april"));
arlist.add(new classmonth("5月", "may"));
this.dropdownlist4.datasource = arlist;
this.dropdownlist4.datavaluefield = "monthen";
this.dropdownlist4.datatextfield = "monthcn";
this.dropdownlist4.databind();