zoukankan      html  css  js  c++  java
  • 实现两级下拉框的联动

    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;
            }

           

  • 相关阅读:
    随笔:自我介绍与软工 5 问
    作业要求 20200924-1 每周例行报告
    作业要求20200924-2 功能测试
    作业要求 20200924-5 四则运算试题生成,结对
    作业要求20200924-3 单元测试,结对
    作业要求20200924-4 代码规范,结对要求
    20200929-git地址
    作业要求 20200917-3 白名单
    作业要求 20200917-1 每周例行报告
    20200917-2 词频统计
  • 原文地址:https://www.cnblogs.com/hyjj/p/5341376.html
Copyright © 2011-2022 走看看