窗体搭建:

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

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

加载年级下拉框:

第一步,在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. 如何编写Vault插件扩展Vault Explorer的功能

    今天练习了一下Vault Explorer的扩展程序,基本上是Vault SDK中的HelloWord示例程序.如果你刚刚开始接触Vault的二次开发,希望对你有帮助. 开始之前,你需要安装Vault ...

  2. 【Leafletjs】5.L.Control 自定义一个Control

    L.Control 所有leaflet控制的基础类.继承自IControl接口. 你可以这样添加控件: control.addTo(map); // the same as map.addContro ...

  3. Web服务器具体开发流程

    下面是我个人对Web服务器开发流程的一点理解,下面做出了大概的模型,实现了基本的功能,下面也有所有的代码可以提供参考: 一开始学的时候不要把网站想的太复杂了,把网站的流程和大概的原理框架搞清楚,在通过 ...

  4. Sqlite3中存储类型和数据类型结合文档解析。

    sqlite3是个很小的数据库,运行在手机,机顶盒上....那它就不可能像musql,sqlserver那么规范,有很多的数据类型,之前我也以为它定义了很多数据类型,其实不是他就5个存储类,那么多数据 ...

  5. 生成iOSAPP的二维码

    1.打开iTunes,在"应用"里面搜索要找的APP 2.右键要生成二维码的APP,选择"拷贝链接" 3.百度一个二维码生成器 4.把刚才拷贝的链接粘贴进去,点 ...

  6. java 实现 LINQ 的一些框架记录一下

    jOOQ: http://www.jooq.org JINQ: http://www.jinq.org JaQue: http://github.com/TrigerSoft/jaque JaQu:  ...

  7. 设计模式 之 装饰者(Decorator)模式

    装饰者模式(Decorator):动态地为一个对象添加一些额外的职责,若要扩展一个对象的功能,装饰者提供了比继承更有弹性的替代方案. 结构图: 抽象构件类(Component):给出一个抽象的接口,用 ...

  8. 关于PHP的curl开启问题

    今天在做一个新浪登录功能,新浪提供的PHP SDK里需要用到curl_init()函数,在调试的时候报找不到curl_init()的方法. 经搜索得知需要开启curl的php扩展,那curl又是什么呢 ...

  9. DOM属性操作

    HTML attribute  --> DOM property 每个html属性都对应一个DOM对象属性,举个栗子: <div> <label for="userN ...

  10. 使用xmarks同步 chrome ie firefox safari书签

    xmarks是什么? Install Xmarks on each computer you use, and it seamlessly integrates with your web brows ...