实现两级下拉框的联动

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 [email protected]";
           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;
        }
时间: 2024-10-06 19:37:16

实现两级下拉框的联动的相关文章

ASP.NET——实现两个下拉框动态联动

引入: 在网页中,我们经常会遇到下图中的情况.首先在下拉框中选择所在的省,选择之后,第二个下拉框会自动加载出该省中的市.这样设计极大的方便了用户的查找.那这是如何实现的呢? 1.建立数据库 "省"表 "市"表 2.添加控件 3.两个下拉框分别绑定数据源 protected void Page_Load(object sender, EventArgs e) { //判断是否第一次进入页面,如果是,则绑定数据库:如果不是,则无需绑定. if (!this.IsPost

2016.8.22 Axure两级下拉框联动的实现

刚学Axure,有些很简单的东西都要弄很久,但是弄出来的总归是很开心的. 参考来自:实现省市县下拉框的三级联动 http://www.woshipm.com/rp/348795.html/comment-page-1 我的实现: 1.添加两个droplist,并且为之命名:province和city. 2.为province添加两个选项. 3.将city转换为dynamic panel. 右击city,选择选项“convert to dynamic panel”. 4.为city添加两个状态(与

通过切换页面引用的js文件实现下拉框的联动

在之前的项目之中,页面最高的角色级别是城市级,一个页面最多是展示一个城市的信息. 因此为每个城市创建了一个js文件,在其中存放此城市的信息,如图: 在此我们关注js文件中存放的区县信息,以北京为例,其区县信息如图: var Districts=[{name:'昌平',index:0},{name:'朝阳',index:1},{name:'崇文',index:2},{name:'大兴',index:3},{name:'东城',index:4}]; 由于之前的页面最多加载某一城市的js文件,Dist

两个下拉框的纠葛

1.说明:后台传来两个list(datelist/weeklist)分别要放入两个下拉框,而且两个list的值一一对应,即datelist.get(i)与weeklist.get(i)值相等,要达到的效果是---->若选中第一个下拉框的值(假设值的索引为index),第二个下拉框的值必须也显示索引为index的option,反之亦然. 2.想法:由于考虑了第二个下拉框虽可以对应显示,但是显示之后,无论是恶意还是非恶意用户,都可能会对第二个下拉框重新进行选择,所以想着选中一个下拉框,第二个下拉框对

excel两个下拉框相互关联

我有两列数据,录入了所有人的信息,一个是姓名,一个是编号 现在我想再做两个下拉框,一个是选择姓名的,一个是选择编号的,我希望我选择姓名后,编号自动对应到这个人的,如果我选择编号,那么姓名也自动对应过来.请教各位excel的达人们. 这个用VLOOKUP函数做更方便 假设是在A列写入了姓名,B列写入了编号 在C2单元格设置了下拉菜单可以选择姓名, 则在D2单元格写入公式 =VLOOKUP(C2,A:B,2,) 原文 http://zhidao.baidu.com/question/14945914

3、CRM2011编程实战——选项集(下拉框)联动效果的实现

需求:根据选择不同的"反映类别",帅选出不同的"反映内容". 字段说明:反映类别:hxcs_feedbacktype,反映内容:hxcs_feedbacktype 解决方案:要设置两个选项集的关联,我们可以为两个选项集设置value的时候,做一些特殊的处理.举例:假设类别的Value:1001,1002,那么对应的内容可以设置为:类别value+00001,即100100001,以此类推.如下图: Js代码如下: function onFeedBackTypeCha

通过创建元素从而实现三个下拉框的联动效果(create.Element(&quot;option&quot;))和提交表单时的验证p.match(&quot;请选择&quot;)

1 <html> 2 <head> 3 <meta charset="utf-8"> 4 <title>下拉框</title> 5 <script language="javascript"> 6 function reg(){ 7 var p,c,a,flag=false; 8 p=document.getElementById("pro").value; 9 c=docu

左右两个下拉框里的内容互换

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <select id="left_slt" size="7" multiple="multiple" style="width: 150px;&quo

struts2+spring+hibernate+dwr3实现下拉框二级联动

三大框架如何整合我这就不说了,csdn里很多大神都有详细整合博客. 因为是用spring管理了struts2和hibernate,所以我们只要把spring与dwr整合就行了. 首先我们需要dwr.jar我用的是最新的dwr3,之前测试过dwr2也是成功的. 先把我们的dwr.jar放到工程的lib目录下,再在web.xml的同等级目录下新建一个dwr.xml. 这是我的dwr.xml配置 <?xml version="1.0" encoding="UTF-8"