Asp.net—DropDownList与listbox的联动
在asp.net控件中,有一些控件是可以支持绑定数据库的,比如dropdownlist、listbox、checkboxgroup、radiobuttnlist。这些控件通过绑定数据库,来显示相应的数据。
在实际的项目中,会有这样的需求,比如在dropdownlist绑定了数据库以后,选择相应的内容,在listbox中就会显示对应内容下的具体条目。比如:在dropdownlist中绑定数据库中所有的省,当选择某个省以后,就会在listbox中出现对应省的城市。这就是两级联动。
下面来介绍一下用到的这两个控件(介绍代码实现中用到的属性和事件):
dropdownlist控件介绍
dopdownlist控件用于创建下列列表,使用数据绑定来指定要显示的项列表。
属性:
DataSource:绑定的数据源。
DataTextField:显示数据文本字段。
DataValueField:显示数据值字段。
selectedvalue:选定项的值。
事件:
SelectedIndexChanged:当已选择的索引发生改变的事件
listbox控件介绍
listbox控件用于创建单选或多选的列表控件,也是用来显示列表数据的控件。
下面是具体的代码实现:
WebForm1.aspx:页面的控件
<form id="form1" runat="server"> <div> <asp:DropDownList ID="ddpro" runat="server" AutoPostBack="True" Height="16px" OnSelectedIndexChanged="ddep_SelectedIndexChanged" Width="143px"> </asp:DropDownList> <asp:ListBox ID="lcity" runat="server" AutoPostBack="True" Height="164px" Width="296px"></asp:ListBox> </div> </form>WebForm1.aspx.cs:服务器代码
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { //在dropdownlist中显示数据库中的省 SqlConnection con = db.createdb(); con.Open(); SqlCommand cmd = new SqlCommand("select * from T_pro",con); SqlDataReader sdr = cmd.ExecuteReader(); this.ddpro.DataSource = sdr; //绑定数据源 this.ddpro.DataTextField = "proName"; //显示数据文本 this.ddpro.DataValueField = "proID";//显示数据值字段 this.ddpro.DataBind(); sdr.Close(); con.Close(); } } protected void ddpro_SelectedIndexChanged(object sender, EventArgs e) { lcity.Items.Clear(); SqlConnection con = db.createdb(); con.Open(); SqlCommand cmdemp = new SqlCommand("select * from emp where depID=" + this.ddpro.SelectedValue, con); SqlDataReader sdrcity = cmdemp.ExecuteReader(); while (sdrcity.Read()) { this.lcity.Items.Add(new ListItem(sdrcity.GetString(1), sdrcity.GetInt32(0).ToString())); //向listbox中添加对应的省的城市名 } sdrcity.Close(); con.Close(); } }
db类:连接数据库
public class db { public db() { } public static SqlConnection createdb() { SqlConnection con = new SqlConnection("server=yiqing-pc;database=pro;uid=sa;pwd=....;"); return con; } }总结
记得去年测试考试系统中,就用到了两级联动,当时还在想用什么思路去做,现在也能算是实现两级联动的简单例子了,但是这种简单例子更容易表现出两级联动的原理。在以后的学习中,还要有更多的关于这方面体会和收获。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。