Combobox下拉框兩級聯動


下拉框的兩級聯動是我們開發中經常遇到一種情況。比如一個學生管理系統中,根據年級、科目及姓名查詢學生考試成績,年級和科目都是硬盤中的有限數據(數據庫)而學生則可以有用戶手動指定,這時在數據庫中有年級和科目兩張表,每門科目都對應一個年級,所以我們可以用兩個下拉框(Combobox)來存儲年級和科目信息來供用戶選擇。界面如下:

image

這時如果我們將科目對應的下拉框直接綁定科目表時,用戶選擇一個年級后還要從所有科目中進行選擇就會降低系統的友好性,甚至可能出現沒有任何意義的查詢語句。我們可以先綁定年級下拉框的數據。在年級下拉框中的SelectedIndexChange事件中獲取年級下拉框中的數據(編號)在用得到的數據(年級編號)去查科目表,將對應的科目信息綁定到科目下拉框。

 
model展開1 int gradeid = Convert.ToInt32(cboGrade.SelectedValue);//獲取選定的年級編號 2 3 List list= subjectBll.GetAllSubject(gradeid);//查詢指定年繼編號下對應的科目信息 4 //綁定科目下拉框 5 cboSubject.ValueMember = "subjectid"; 6 cboSubject.DisplayMember = "subjectname"; 7 cboSubject.DataSource = list; 
返回頂部收縮  1 int gradeid = Convert.ToInt32(cboGrade.SelectedValue);//獲取選定的年級編號
  2 
  3 List <Subject> list= subjectBll.GetAllSubject(gradeid);//查詢指定年繼編號下對應的科目信息 
  4     //綁定科目下拉框 
  5 cboSubject.ValueMember = "subjectid";
  6 cboSubject.DisplayMember = "subjectname";
  7 cboSubject.DataSource = list;
 

下拉框的SelectedValue屬性

屬性原型:image

常見錯誤:image

錯誤分析:經過實驗可以確認將綁定數據源的代碼放在屬性設置的后邊是可以解決這個錯誤的,個人覺得是如果先綁定數據源的話系統會自動將valuemember的屬性值設置為綁定的集合的類型之后再設置Valuemember時系統不會再對其進行更改!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM