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;
        }
    }
总结

        记得去年测试考试系统中,就用到了两级联动,当时还在想用什么思路去做,现在也能算是实现两级联动的简单例子了,但是这种简单例子更容易表现出两级联动的原理。在以后的学习中,还要有更多的关于这方面体会和收获。


Asp.net—DropDownList与listbox的联动,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。