Combobox下拉框两级联动
2016-04-02 08:54
246 查看
下拉框的两级联动是我们开发中经常遇到一种情况。比如一个学生管理系统中,根据年级、科目及姓名查询学生考试成绩,年级和科目都是硬盘中的有限数据(数据库)而学生则可以有用户手动指定,这时在数据库中有年级和科目两张表,每门科目都对应一个年级,所以我们可以用两个下拉框(Combobox)来存储年级和科目信息来供用户选择。界面如下:
这时如果我们将科目对应的下拉框直接绑定科目表时,用户选择一个年级后还要从所有科目中进行选择就会降低系统的友好性,甚至可能出现没有任何意义的查询语句。我们可以先绑定年级下拉框的数据。在年级下拉框中的SelectedIndexChange事件中获取年级下拉框中的数据(编号)在用得到的数据(年级编号)去查科目表,将对应的科目信息绑定到科目下拉框。
错误分析:经过实验可以确认将绑定数据源的代码放在属性设置的后边是可以解决这个错误的,个人觉得是如果先绑定数据源的话系统会自动将valuemember的属性值设置为绑定的集合的类型之后再设置Valuemember时系统不会再对其进行更改!
这时如果我们将科目对应的下拉框直接绑定科目表时,用户选择一个年级后还要从所有科目中进行选择就会降低系统的友好性,甚至可能出现没有任何意义的查询语句。我们可以先绑定年级下拉框的数据。在年级下拉框中的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;
错误分析:经过实验可以确认将绑定数据源的代码放在属性设置的后边是可以解决这个错误的,个人觉得是如果先绑定数据源的话系统会自动将valuemember的属性值设置为绑定的集合的类型之后再设置Valuemember时系统不会再对其进行更改!
相关文章推荐
- ubuntu――LAMP(Linux -3.13.0-32-generic ,Apache-2.4.18,MySQL-5.6.27,PHP -7.0.5)(二)
- Linux 命令 总结
- 用事件适配器来实现窗口的关闭
- Qt中读写xml文件
- 对WindowListener接口的简单应用
- 20145304 第五周Java学习报告
- JSP -- JSTL核心标签 (1)
- genymotion登入老报unknown generic error
- AWT的基本应用
- 一天一个Java基础——反射
- 16.04.01
- ADO.NET
- 使用WCF实现SOA面向服务编程—— 架构设计
- Win10一周年更新操作中心细节曝光:缩略图上头条/logo成为排序标识
- sql中执行语句
- atitit 提升数据库死锁处理总结
- 云主机主机名修改
- 购物商城shopping连载(10)
- PHP基础整理5
- 大型网站架构知识结构图(值得一看)