DropDownList和ListBox實現兩級聯動功能,他們也可以將從後台資料庫中搜選的出來的資訊加以綁定,這裡要實現的功能是在DropDownList中選擇“省”,然後讓ListBox自動將其省份下的“市”顯示出來,這就是所謂的兩級聯動功能,這個功能我們在很多註冊網頁上看見,今天咱們就用ASP.NET解開其神秘的面紗。
一、設定前台介面,在Web表單中添加DropDownList和ListBox兩個控制項。介面圖如下所示。
二、編寫後台代碼
在這,後台代碼編寫在其表單的Page_Load事件中
<span style="font-family:KaiTi_GB2312;font-size:18px;"> protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack ) //判斷頁面是否第一次載入 { SqlConnection con = DB.createConnection(); //此方法在上一篇文章中已經介紹,調用一個已經編寫好的建立資料庫連接的方法。 SqlCommand cmd = new SqlCommand("select * from province",con); SqlDataReader sdr = cmd.ExecuteReader(); this.DropDownList1.DataTextField = "proName"; this.DropDownList1.DataValueField = "proID"; //主鍵欄位 this.DropDownList1.DataSource = sdr; this.DropDownList1.DataBind(); sdr.Close(); } }</span>
編寫DropDownList1_SelectedIndexChanged事件代碼,實現單擊“省”,ListBox自動添加該“省”所具有的“市”
<span style="font-family:KaiTi_GB2312;font-size:18px;"> protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) { this.ListBox1.Items.Clear(); SqlConnection con2 = DB.createConnection(); SqlCommand cmd1 = new SqlCommand("select * from city where proID=" + this.DropDownList1.SelectedValue, con2); SqlDataReader sdr1 = cmd1.ExecuteReader(); while (sdr1.Read()) { this.ListBox1.Items.Add(new ListItem(sdr1.GetString(2),sdr1.GetInt32(0).ToString())); } }</span>
運行檔案,如下所示
這裡河北省的城市我沒有添加完整,只是為了實現兩級聯動的功能,相比前兩篇部落格中Web控制項GridView和Repeater的使用,GridView和Repeater功能雖然是相當強大,但是不同的控制項有不同的用途,在這裡,殺雞焉用牛刀?