窗体搭建:

实现功能: 加载年级下拉框

选中年级时加载出科目下拉框

加载年级下拉框:

第一步,在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的联动的更多相关文章

  1. 装13失败后的逆袭(ComboBox的联动)

    当我们在做ComboBox的联动的时候飞一般的敲出自认为完美的代码.在运行的时候突然变得不完美了. 比如: 如果发生了这种情况会不会就卡磁了呢 当然不会作为程序猿的我们考的是我们聪明的大脑,当然会想出 ...

  2. 【EasyUI】Combobox的联动和onChange/onSelect事件绑定

    [效果图] (1)当选择“产品名称”这个查询项目时,运算条件只有“等于”和“不等于”,如下图所示. (2)当用户选择可以进行数值计算的查询项目时,运算条件就会有很多,如下图所示. [实现代码] 1.H ...

  3. ComboBox的联动(三层架构)

    需求:根据年级下拉框的变化使得科目下拉框绑定次年级下对应有的值 我们用三层架构的模式来实现 1.我们想和数据库交互,我们首先得来先解决DAL数据库交互层 01.获得年级下拉框的数据 在GradeDAL ...

  4. C# Combobox联动

    接上一篇博文,对界面做一个小修改,做4个combobox,形成窗口之间的联动: 界面如下: 选择combobox里的条件,单击查询获取数据 首先连接数据库,获取到数据到第一个combobox里,代码在 ...

  5. vs2013+MVC3.0+EasyUI的ComboBox联动使用(二)

     vs2013+MVC3.0+EasyUI的ComboBox联动使用(二) 简单介绍:在vs2013(.net4.0)中使用MVC3.0对于EasyUI中ComboBox的联动使用. 载入Comb ...

  6. easyUI combobox 控件 使用

    1,combobox 二级联动 (参数传递 函数调用) // toolbar 学校班级二级联动 var paramSearch = { school : $('#search-school'), cl ...

  7. 使用easy ui过程中资料(网址)总结

    (1)JQuery Easy Ui 可装载组合框 - ComboBox (2)JQuery Easy Ui DataGrid (3)Easy ui combobox 多级联动 (四级联动) (4)jQ ...

  8. .net+easyui--combobox

    一:预定义结构的 select 元素创建组合框(combobox)值固定写死 <select class="easyui-combobox" name="state ...

  9. Extjs4学习

    1 Ext js初步 1.1 获取Extjs 下载extjs: 可以从http://extjs.org.cn/ 获得需要的extjs发布包及更多支持. 1.2 搭建学习环境: 假设您的机器已经安装my ...

随机推荐

  1. 使用MDK3探测隐藏SSID名称

    先将网卡设置为监听模式. airmon-ng start wlan0 扫描附近无线网络,找出隐藏SSID的AP. airodump-ng wlan0mon 这里用下图搜到的第一个隐藏SSID做测试. ...

  2. Android UI线程和非UI线程

    Android UI线程和非UI线程 UI线程及Android的单线程模型原则 当应用启动,系统会创建一个主线程(main thread). 这个主线程负责向UI组件分发事件(包括绘制事件),也是在这 ...

  3. iOS中的物理引擎

    目前知名的2D物理引擎有 Box2d,和Chipmunk,这些是跨平台的.但苹果本身也封装了一个物理引擎, UIDynamic是从iOS 7开始引入的一种新技术,隶属于UIKit框架.这可以让开发人员 ...

  4. Android Handler机制(一)---Message源码分析

    Message: 定义: public final class Message implements Parcelable Message类是个final类,就是说不能被继承,同时Message类实现 ...

  5. nginx反向代理配置及优化

    nginx反向代理配置及优化前言: 由于服务器apache抗不住目前的并发.加上前端squid配置后,问题依然无法解决.而页面程序大部分是动态.无法使用fastcgi来处理.因此想使用nginx做为反 ...

  6. 终极指南:如何为iOS8应用制作预览视频

    最近一两个月里,苹果的世界里出现了很多新东西,比如屏幕更大的iPhone 6,可穿戴设备Apple Watch,iOS8,以及旨在帮助用户更好的发现应用的App Store改版等等. 说到App St ...

  7. ReactiveCocoa框架下的MVVM模式解读

    记录一些MVVM文章中关于ReactiveCocoa的代码: 实例一:带有分页的文章列表,根据文章类别过滤出文章的列表,可以进入文章详细页面 1:YFBlogListViewModel 首先了解关于列 ...

  8. 浅析Dagger2的使用

    什么是Dagger2 Dagger是为Android和Java平台提供的一个完全静态的,在编译时进行依赖注入的框架,原来是由Square公司维护,现在由Google维护. 我们知道Dagger是一个依 ...

  9. WPF学习之路(八)页面

    传统的应用程序中有两类应用程序模式:桌面应用,Web应用.WPF的导航应用程序模糊了这两类应用程序的界限的第三类应用程序 WPF导航表现为两种形式,一是将导航内容寄宿于窗口,二是XAML浏览器应用程序 ...

  10. yii2 如何在页面底部加载css和js

    作者:白狼 出处:www.manks.top/article/yii2_load_js_css_in_end 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接 ...