达成两级下拉框的联动
发布时间:2021-11-18 19:35:35 所属栏目:教程 来源:互联网
导读:1.实现两级下拉框的联动。 功能:实现点击年级下拉框,加载对应科目的下拉框。 第一步:首先要加载年级下拉框中的数据。 01.在GradeDAL层(数据访问层)写一个方法,查询所有年级的信息。 /// summary /// 从数据库中获取年级信息 /// /summary /// returnsL
1.实现两级下拉框的联动。 功能:实现点击年级下拉框,加载对应科目的下拉框。 第一步:首先要加载年级下拉框中的数据。 01.在GradeDAL层(数据访问层)写一个方法,查询所有年级的信息。 /// <summary> /// 从数据库中获取年级信息 /// </summary> /// <returns>List的集合:年级编号,年级名称</returns> public List<Grade> SelectGradeInfo() { List<Grade> list = new List<Grade>(); string sql = "select * from Grade"; DataTable dt= SQLHelper.ExecuteDataTable(sql); foreach (DataRow item in dt.Rows) { //一个item代表一个行对象 Grade grade = new Grade(); grade.GradeId = Convert.ToInt32(item["GradeID"]); grade.GradeName=item["GradeName"].ToString(); list.Add(grade); } return list; } 02.在GradeBLL层(业务逻辑层)调用数据访问层的方法,返回给UI层来调用。 public class GradeBLL { GradeDAl gd = new GradeDAl(); /// <summary> /// 从数据库中获取年级信息 /// </summary> /// <returns>List的集合:年级编号,年级名称</returns> public List<Grade> SelectGradeInfo() { return gd.SelectGradeInfo(); } } 03.在UI层(表示层)调用GradeBLL层的方法,用List<Grade>类型接收,绑定到下拉框中,实现年级下拉框的绑定。 //加载年级下拉框方法,在Load事件做调用 public void Loadingcbograde() { //调用BLL层的方法,用list集合接收 List<Grade> list = gb.SelectGradeInfo(); //绑定显示值。 cbograde.DisplayMember = "gradename"; //绑定隐藏值。 cbograde.ValueMember = "gradeid"; //绑定数据源 cbograde.DataSource = list; } 第二步:在年级下拉框中的SelectedIndexChanged(属性值更改时触发的事件)通过调用BLL层的方法来加载该年级下对应的科目信息。 01.在SubjectDAL层写一个方法,根据选择的年级获取该年级的隐藏值(也就是年级编号)来查询该年级的科目信息,返回一个subject对象的集合。 /// <summary> /// 根据选中的年级编号查询该年级下的科目 /// </summary> /// <returns>科目对象集合</returns> public List<Subject> SelectSubjectInfos(int id) { //根据年级编号查询科目信息 string sql = "select subjectid,subjectname from subject where gradeid=@gradeid"; SqlParameter sp = new SqlParameter("@gradeid", id); DataTable dt = SQLHelper.ExecuteDataTable(sql,sp); List<Subject> list = new List<Subject>(); foreach (DataRow item in dt.Rows) { Subject subject = new Subject(); subject.SubjectId = Convert.ToInt32(item["Subjectid"]); subject.SubjectName = item["Subjectname"].ToString(); list.Add(subject); } return list; } 02.在SubjectBLL层调用数据访问层的方法,返回给UI层来调用。 /// <summary> /// 根据选中的年级编号查询该年级下的科目 /// </summary> /// <returns>科目对象集合</returns> public List<Subject> SelectSubjectInfos(int id) { return sd.SelectSubjectInfos(id); } 03.在年级下拉框中的SelectedIndexChanged(属性值更改时触发的事件)调用SubjectBLL层的方法 //实例化SubjectBLL SubjectBLL sb = new SubjectBLL(); //年级下拉框属性更改值触发的事件 private void cbograde_SelectedIndexChanged(object sender, EventArgs e) { //获取年级编号 int id= Convert.ToInt32(cbograde.SelectedValue); //调用BLL层的方法用Subject类型的集合接收 List<Subject> list= sb.SelectSubjectInfos(id); //在科目下来框中添加一项全部。 list.Insert(0, new Subject {SubjectId=-1, SubjectName="全部" }); //清空下拉框数据 cbosubject.DataSource = null; //绑定显示值 cbosubject.DisplayMember = "subjectname"; //绑定隐藏值 cbosubject.ValueMember = "subjectid"; //绑定数据源 cbosubject.DataSource = list; } (编辑:宁德站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |