asp.net DropDownList 控件

DropDownList (类。命名空间:System.Web.UI.WebControls程序集:System.Web(在 system.web.dll 中))控件是由 ListItem 元素定义的,该控件支持数据绑定,表示允许用户从下拉列表中选择一项的。

注:在asp.net中所有的数据库绑定控件都是从BaseDataBoundControl这个抽象类派生的

一、DropDownList 控件属性
1、AutoPostBack属性:用于设置当改变选项内容时,,是否自动回送到服务器。True表示回送;False(默认)表示不回送。
2、DataSource属性:用于指定填充列表控件的数据源。
3、DataTextField属性:用于指定DataSource中的一个字段,该字段的值对应于列表项的Text属性。
4、 DataValueField属性:用于指定DataSource中的一个字段,该字段的值对应于列表项的Value属性。
5、Items属性:表示列表中各个选项的集合,如DropDownList.Items(i)
表示第i个选项,i从0开始。每个选项都有以下3个基本属性:
Text 属性:表示每个选项的文本。
Value属性:表示每个选项的选项值。
Selected属性:表示该选项是否被选中。
Count属性:通过Items.Count属性可获得DropDownList控件的选项数;
Add方法:通过items.Add方法可以向 DropDownList控件添加选项;
Remove方法:通过items.Remove方法,可从DropDownList控件中删除指定的选项;
Insert方法:通过items.insert方法,可将一个新的选项插入到DropDownList控件中;
Clear方法:通过items.clear方法可以清空DropDownList控件中的选项。
6、SelectedIndex属性:用于获取下拉列表中选项的索引值。如果未选定任何项,则返回值-1(负1)。
7、SelectedItem属性:用于获取列表中的选定项。通过该属性可获得选定项的Text 和Value属性值。
8、SelectedValue属性:用于获取下拉列表中选定项的值。
9、 SelectedIndexchanged事件:当用户选择了下拉列表中的任意选项时,都将引发SelectedIndexChanged事件。
二、动态绑定数据。
(1)动态绑定方法一:动态绑定数据库中的字段。
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "";
conn.Open();
string strSql= "select name,id from tb";
SqlCommand comm = new SqlCommand(strSql, conn);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = comm ;
DataSet ds = new DataSet();
da.Fill(ds, "tb");
this.DropDownList1.DataSource = ds.Tables["tb"].DefaultView;  //绑定源表DataSource控件属性必须是一个可以枚举的数据源,
//如实现了ICollection、IEnumerable或IListSource接口的类的实例。
this.DropDownList1.DataTextField="要显示的字段 (如name)";
this.DropDownList1.DataValueField="值字段(如id)""; //页面上显示成name,如果用DropDownList1选项作条件传参,传过去的就是id
this.DropDownList1.DataBind();//绑定
ds.Dispose();
(2)动态绑定方法二:利用DropDownList.Items.Add方法。
1、
con.Open();
SqlCommand cmd = new SqlCommand(strSql,con);
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{      
      DropDownList1.Items.Add(new ListItem(dr["name"].ToString(), dr["name_Id"].ToString()));
}
2、
this.DropDownList1.Items.Clear();//清空
this.DropDownList1.Items.Add(new ListItem("所有", "所有"));//首项添加一列所有
foreach (NameInfoa in BLL.Name.GetNameByA())//封装一个方法GetNameByA()获取数据字段
//此方法必须是ICollection、IEnumerable或IListSource接口的类的实例。集合类型方法
{
    this.DropDownList1.Items.Add(new ListItem(a.name, a.code));//(要显示的字段,值字段)
}
namespace SQLServerDAL
{
    class Name : IName
public IList<NameInfo> GetNameByA()//封装在SQLServerDAL里的不带参数方法
{
   SqlHelper objSqlHelper = new SqlHelper();
    tring strsql = "select code ,name from tb“ ;
    SqlDataReader dr = objSqlHelper.GetDataReader(strsql);
   NameInfo item = new NameInfo();
     while (dr.Read())
{
    item.Code = dr.GetString(dr.GetOrdinal("code"));
    item.Name = dr.GetString(dr.GetOrdinal("name"));
}
    dr.Close();
    objSqlHelper.GetClose();
    return item;
    }
}
三、实现两个DropDownList联动绑定(根据DropDownList1选择内容自动动态联动绑定DropDownList2
<ASP:DropDownList  Id="控件名称" Runat="Server" AutoPostBack="True "   OnSelectedIndexChanged="事件程序名称" >
<ASP:ListItem/></ASP:DropDownList>
注意:DropDownList1的AutoPostBack设置成True写一个DropDownList1的OnSelectedIndexChanged事件
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
this.DropDownList2.Items.Clear();//清空
this.DropDownList2.Items.Add(new ListItem("所有", "所有"));
foreach (NameInfoa in BLL.Name.GetNameByA())
{
    this.DropDownList2.Items.Add(new ListItem(a.name, a.code));
}
}

asp.net给DropDownList添加ToolTip(title)属性 
    /// <summary> 
    /// 为DropDownList的Item加title属性 
    /// </summary> 
    /// <param name="ddl">DropDownList</param> 
    private void addTitle(DropDownList ddl) 
    { 
        foreach (ListItem item in ddl.Items) 
        { 
            item.Attributes.Add("title", item.Text); 
        } 
    } 
<script language="javascript" type="text/javascript"> 
        function showdropitem()//给页面全部select加title属性 
        { 
            var el = document.getElementsByTagName("select"); 
            for(i=0;i<el.length;i++) 
            { 
                showitem(el[i]); 
            } 
        } 
        function showitem(obj)//将就需要加title属性的select传进来 
        { 
            for(j=0;j<obj.options.length;j++) 
            { 
                obj.options[j].title = obj.options[j].text; 
            } 
        } 
</script>

注:欢迎喜爱编程的朋友进群交流。QQ群交流:256169347

群共享了很多pdf书籍文档


  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值