ComboBox的联动
窗体搭建:

实现功能: 加载年级下拉框
选中年级时加载出科目下拉框
加载年级下拉框:
第一步,在DAL层中写一个方法,检索所有的年级名称集合,返回的是泛型集合List<>
public List<Grade> LoadAllGradeToList()
{
string sql = "select * from grade";
DataTable dt = SQLHelper.ExecuteDataTable(sql);
MyTool tool = new MyTool();
List<Grade> list=tool.DataTableToList<Grade>(dt);
return list;
}
第二步,在BLL层对DAL层中的所有方法做传递
public class GradeBLL
{
GradeDAL dal = new GradeDAL();
public List<Grade> getAllGradeList()
{
return dal.LoadAllGradeToList();
}
}
第三步,在load窗体中绑定年级下拉框列
private void FrmSeachByGrade_Load(object sender, EventArgs e)
{
//绑定年级下拉框
List<Grade> list = grade.LoadAllGradeToList();
cboGrade.ValueMember = "GradeId";
cboGrade.DisplayMember = "GradeName";
cboGrade.DataSource = list;
}
实现效果:

根据年级编号,加载科目下拉框值
第一步,在DAL层写一个根据年级编号获取科目集合的方法
public class SubjectDAL
{
public List<Subject> getAllSubjectByGradeId(int id)
{
string sql = "select * from subject where gradeid=@id";
SqlParameter para = new SqlParameter("@id",id);
DataTable dt = SQLHelper.ExecuteDataTable(sql,para);
MyTool tool = new MyTool();
List<Subject> list=tool.DataTableToList<Subject>(dt);
return list;
}
}
第二步,在BLL层对DAL层中的所有方法做传递
public class SubjectBLL
{
SubjectDAL dal = new SubjectDAL(); public List<Subject> getAllSubjectByGradeId(int id)
{
return dal.getAllSubjectByGradeId(id);
}
}
第三步,UI层
SubjectBLL subBll = new SubjectBLL();
private void cboGrade_SelectedIndexChanged(object sender, EventArgs e)
{
int selectid = Convert.ToInt32(cboGrade.SelectedValue);
List<Subject> list = subBll.getAllSubjectByGradeId(selectid);
cboSubject.ValueMember = "subjectId";
cboSubject.DisplayMember = "subjectName";
cboSubject.DataSource = list;
实现效果:

但到这里,以上代码实现的功能有一个不可避免的问题

图片解释:

如何解决?
只需要在load事件中写一行代码即可
cboSubject.DropDownHeight = ;
注:出现以下错误的解决方案

1.将DataSource=泛型集合,调整到最后一行
2.用标记,在Load 和SelectedIndexChanged之外,定义一个bool类型变量。然后在Load中设置成True,在SelectedIndexChanged中判定flag
ComboBox的联动的更多相关文章
- 装13失败后的逆袭(ComboBox的联动)
当我们在做ComboBox的联动的时候飞一般的敲出自认为完美的代码.在运行的时候突然变得不完美了. 比如: 如果发生了这种情况会不会就卡磁了呢 当然不会作为程序猿的我们考的是我们聪明的大脑,当然会想出 ...
- 【EasyUI】Combobox的联动和onChange/onSelect事件绑定
[效果图] (1)当选择“产品名称”这个查询项目时,运算条件只有“等于”和“不等于”,如下图所示. (2)当用户选择可以进行数值计算的查询项目时,运算条件就会有很多,如下图所示. [实现代码] 1.H ...
- ComboBox的联动(三层架构)
需求:根据年级下拉框的变化使得科目下拉框绑定次年级下对应有的值 我们用三层架构的模式来实现 1.我们想和数据库交互,我们首先得来先解决DAL数据库交互层 01.获得年级下拉框的数据 在GradeDAL ...
- C# Combobox联动
接上一篇博文,对界面做一个小修改,做4个combobox,形成窗口之间的联动: 界面如下: 选择combobox里的条件,单击查询获取数据 首先连接数据库,获取到数据到第一个combobox里,代码在 ...
- vs2013+MVC3.0+EasyUI的ComboBox联动使用(二)
vs2013+MVC3.0+EasyUI的ComboBox联动使用(二) 简单介绍:在vs2013(.net4.0)中使用MVC3.0对于EasyUI中ComboBox的联动使用. 载入Comb ...
- easyUI combobox 控件 使用
1,combobox 二级联动 (参数传递 函数调用) // toolbar 学校班级二级联动 var paramSearch = { school : $('#search-school'), cl ...
- 使用easy ui过程中资料(网址)总结
(1)JQuery Easy Ui 可装载组合框 - ComboBox (2)JQuery Easy Ui DataGrid (3)Easy ui combobox 多级联动 (四级联动) (4)jQ ...
- .net+easyui--combobox
一:预定义结构的 select 元素创建组合框(combobox)值固定写死 <select class="easyui-combobox" name="state ...
- Extjs4学习
1 Ext js初步 1.1 获取Extjs 下载extjs: 可以从http://extjs.org.cn/ 获得需要的extjs发布包及更多支持. 1.2 搭建学习环境: 假设您的机器已经安装my ...
随机推荐
- [deviceone开发]-do_Socket组件示例
一.简介 do_Socket只实现了socket的客户端的功能,这个示例完整了展示了组件的基本用法,需要和sockettest3工具配合使用,sockettest3做为一个socket server来 ...
- CXF:通过WebService上传文件,包括大文件的处理
参考网上文章,用CXF发布上传文件接口,并上传大文件的测试. 框架:spring3.1+cxf2.7.6 1.定义文件类实体 import javax.activation.DataHandler; ...
- flume 集群安装
./pssh -h ./host/all.txt -P mkdir /usr/local/app ./pssh -h ./host/all.txt -P tar zxf /usr/local/soft ...
- Ubuntu Server 14.04升级Ubuntu Server 16.04
Ubuntu Server 14.04升级Ubuntu Server 16.04 :转 http://blog.csdn.net/chszs 1.终端下执行命令 $ sudo apt-get upda ...
- Sqlite3中存储类型和数据类型结合文档解析。
sqlite3是个很小的数据库,运行在手机,机顶盒上....那它就不可能像musql,sqlserver那么规范,有很多的数据类型,之前我也以为它定义了很多数据类型,其实不是他就5个存储类,那么多数据 ...
- JQuery隐藏显示详情功能
放置两个DIV:初始DIV :在Repetr绑定设置文字隐藏(三元运算符):'<%# Eval("字段2").ToString().Length>11?Eval(&qu ...
- <转>iOS应用程序内使用IAP/StoreKit付费、沙盒(SandBox)测试、创建测试账号流程!
原文地址:http://blog.csdn.net/xiaominghimi/article/details/6937097 //——2012-12-11日更新 获取"产品付费数量等于0 ...
- 【代码笔记】iOS-剧幕拉开形的首页
一,工程图. 二,代码. RootViewController.h #import <UIKit/UIKit.h> #import "UIImage+SplitImageInto ...
- 【代码笔记】iOS-短信分享
代码: ViewController.h #import <UIKit/UIKit.h> //短信分享 #import <MessageUI/MFMailComposeViewCon ...
- KVC与KVO的实现原理
|KVC的用法 1.KVC既键值编码(Key Value Coding),基于NSKeyValueCoding协议,它是以字符串的形式来操作对象的成员变量,也就是通过字符串key来指定要操作的成员变量 ...