加入收藏 | 设为首页 | 会员中心 | 我要投稿 宁德站长网 (https://www.0593zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

达成两级下拉框的联动

发布时间: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;
        }

(编辑:宁德站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读