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

引入:

在网页中,我们经常会遇到下图中的情况。首先在下拉框中选择所在的省,选择之后,第二个下拉框会自动加载出该省中的市。这样设计极大的方便了用户的查找。那这是如何实现的呢?

1、建立数据库

“省”表

“市”表

2、添加控件

3、两个下拉框分别绑定数据源

      protected void Page_Load(object sender, EventArgs e)
        {
            //判断是否第一次进入页面,如果是,则绑定数据库;如果不是,则无需绑定。
            if (!this.IsPostBack)
            {
                //绑定省   

                SqlConnection con = DB.createConnection();
                con.Open();
                string cmdText = "select* from province";
                SqlCommand cmd = new SqlCommand(cmdText, con);
                SqlDataReader sdr = cmd.ExecuteReader();
                this.DropDownList1.DataSource = sdr;
                this.DropDownList1.DataTextField = "proName";//文本内容
                this.DropDownList1.DataValueField = "proID"; //数据源字段
                this.DropDownList1.DataBind();
                sdr.Close();

                //绑定市
                string cmdCityText = "select* from city where proID=" + this.DropDownList1.SelectedValue;
                SqlCommand cmdCity = new SqlCommand(cmdCityText, con);
                sdr = cmdCity.ExecuteReader();
                //剩下部分与绑定省类似,略

                //关闭连接
                con.Close();
            }
        }
  

到这里,两个文本框都已经加载到各自的数据。剩下的就是动态联动了。

4、当我们更改第一个下拉框中的内容后,会触发第一个文本框的SelectedIndexChanged事件。将第一个下拉框的proID(省的ID)作为参数,即可查到其市的内容。

具体代码如下:

 protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
        {
            //省的ID
            string proID = this.DropDownList1.SelectedValue;
            SqlConnection con = DB.createConnection();
            con.Open();

            SqlCommand cmd = new SqlCommand("select * from city where proID=" + proID, con);
            SqlDataReader sdr = cmd.ExecuteReader();
            //绑定
            this.DropDownList2.DataSource = sdr;
            this.DropDownList2.DataTextField = "cityName";
            this.DropDownList2.DataValueField = "cityID";
            this.DropDownList2.DataBind();
            sdr.Close();
            con.Close();
        }

这样,我们就可以实现动态联动了。这样的动态联动,一般由多个下拉框组成一组菜单,比如上面用到的两个下拉框。下拉菜单之间有联动的关系。当上级的选中项发生改变时,下级会根据上级中的选中项显示相应的内容。

虽然只是一个小技巧或者说是小的需求,但当数据量特别大时,它的功能就不可小视了。上次期末考试导考生的时候,可能只是一个页面忽略了这个功能,结果导致工作量大大增加。

用了动态联动之后,当面对庞大的数据或复杂的分类时,页面的加载速度也不会受到影响,也方便了用户查找。

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

时间: 2024-11-10 11:54:47

ASP.NET——实现两个下拉框动态联动的相关文章

实现两级下拉框的联动

1.实现两级下拉框的联动. 功能:实现点击年级下拉框,加载对应科目的下拉框. 第一步:首先要加载年级下拉框中的数据. 01.在GradeDAL层(数据访问层)写一个方法,查询所有年级的信息. /// <summary> /// 从数据库中获取年级信息 /// </summary> /// <returns>List的集合:年级编号,年级名称</returns> public List<Grade> SelectGradeInfo() { List

通过切换页面引用的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

Asp.net绑定带层次下拉框(select控件)

1.效果图 2.数据库中表数据结构 3.前台页面 <select id="pid" runat="server"> <option value="0" data="|0|">不选父级类</option> </select> 备注:查看源代码 4.后台代码 using System; using System.Data; using System.Web.UI.WebControl

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

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

JQuery和ASP.NET分别实现级联下拉框效果

在学习JQuery之前知道下拉框的级联效果可以通过asp.net控件实现,现在学习了JQuery,知道了JQuery和select也能实现.我分别举两个小例子说明这两种方法如何实现. 1.用JQuery和select来实现汽车厂商和汽车类型的联动 效果图:       逻辑分析图: html代码: [html] view plain copy <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "

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添加两个状态(与

asp.net MVC4 表单 - 下拉框

1.下拉框代码方式 控制器内构建下拉项目: List<SelectListItem> list = new List<SelectListItem>(); list.Add(new SelectListItem() { Text = "计算机", Value = "computer" }); list.Add(new SelectListItem() { Text = "数学", Value = "math&qu