窗体搭建:

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

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

加载年级下拉框:

第一步,在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. servle

      基于HTTP协议下的,http请求和http响应.   http请求------请求的是服务器中的地方. 1.servlet就是解析http请求和发送http响应.   2.servlet是是一个 ...

  2. C#关于word文档的书签替换操作

    public void Get_Word(string gjbh) { try { DataSet ds = OperaterBase.GetDsBySql("select diffTabl ...

  3. ARP投毒及其防御方法

    1.攻击原理 ARP欺骗就是中间人欺骗pc机,告诉pc机它是服务器.再欺骗服务器,告诉服务器它就是pc机.以致获取服务器与pc机的会话信息. 中间人欺骗服务器时,会给服务器发一个报文,发之前把报文中的 ...

  4. 【Leafletjs】4.L.Map 中文API

    L.Map API各种类中的核心部分,用来在页面中创建地图并操纵地图. 使用 example // initialize the map on the "map" div with ...

  5. GPS定位为什么要转换处理?高德地图和百度地图坐标处理有什么不一样?

    GPS定位为什么要转换处理?高德地图和百度地图坐标处理有什么不一样? 先了解一下 高德地图 采用: GCJ-02 (不可逆) 百度百科: http://baike.baidu.com/link?url ...

  6. centos初始配置

    修改语言环境 [root@oracledb ~]# sudo vim /etc/sysconfig/i18n 将将zh_CH修改为"en_US.UTF-8" 搭建yum本地源 参考 ...

  7. Android 尺寸单位转换和屏幕适配相关

    Android 尺寸单位转换和屏幕适配相关 各种尺寸单位的意义 dp: Density-independent Pixels 一个抽象的单元,基于屏幕的物理密度. (dp和dip的意义相同,所以不用区 ...

  8. 我的BluetoothChat示例源码阅读笔记

    BluetoothChat核心类BluetoothChatService,该类用于管理与其他设备的蓝牙连接和设置.该类包含AcceptThread.ConnectedThread.ConnectThr ...

  9. 你真的了解UIControl吗?

    一:首先查看一下关于UIControl的定义 NS_CLASS_AVAILABLE_IOS(2_0) @interface UIControl : UIView //控件默认是启用的YES.是否要禁用 ...

  10. 【代码笔记】iOS-时间选择框

    一, 效果图. 二,工程图. 三,代码. RootViewController.h #import <UIKit/UIKit.h> @interface RootViewControlle ...