欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ASP.NET中DropDownList下拉框列表控件绑定数据的4种方法

程序员文章站 2024-02-11 17:34:04
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();