引入:

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

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——实现两个下拉框动态联动的更多相关文章

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

    介绍: 在网页中.我们常常会遇到下图中的情况.首先在下拉框中选择所在的省.选择之后,第二个下拉框会自己主动载入出该省中的市.这样设计极大的方便了用户的查找.那这是怎样实现的呢? 1.建立数据库 &qu ...

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

    在学习JQuery之前知道下拉框的级联效果可以通过asp.net控件实现,现在学习了JQuery,知道了JQuery和select也能实现.我分别举两个小例子说明这两种方法如何实现. 1.用JQuer ...

  3. asp 下拉框二级联动

    <script language = "JavaScript"> //js开始 var aaa;//定义aaa变量 aaa=0;//aaa赋0 bb = new Arr ...

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

    刚学Axure,有些很简单的东西都要弄很久,但是弄出来的总归是很开心的. 参考来自:实现省市县下拉框的三级联动 http://www.woshipm.com/rp/348795.html/commen ...

  5. asp.net MVC4 表单 - 下拉框

    1.下拉框代码方式 控制器内构建下拉项目: List<SelectListItem> list = new List<SelectListItem>(); list.Add(n ...

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

    1.效果图 2.数据库中表数据结构 3.前台页面 <select id="pid" runat="server" style="width:16 ...

  7. 通过jquery来实现文本框和下拉框动态添加效果,能根据自己的需求来自定义最多允许添加数量,实用的jquery动态添加文本框特效

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. bootstrap selectpicker控件select下拉框动态数据无法回显的问题

    有关于selectpicker下拉框数据回显的问题,当查看一个对象的属性的时候, 发现有关于selectpicker的下拉框并没有将返回的数据进行回显,显示的都是请选择, 经查证,当查看属性的时候,他 ...

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

    <html> <head> <meta charset="utf-8"> <title>下拉框</title> < ...

随机推荐

  1. Visual Studio Code快捷键_Linux

    Keyboard shortcuts for Linux Basic editing Ctrl + X Cut line(empty selection) Ctrk + C   Copy line(e ...

  2. JavaWeb-拦截器,过滤器,监听器的区别和执行顺序

    一:拦截器 :是在面向切面编程的就是在你的service或者一个方法,前调用一个方法,或者在方法后调用一个方法比如动态代理就是拦截器的简单实现,springmvc的aop中的前置通知和后置通知. 二: ...

  3. java异常处理 throw RuntimeException时不需要同时方法中声明抛出throws 异常等待调用者catch进行捕获 子父类异常问题

    package com.swift.exception1; public class Demo_Exception { public static void main(String[] args) { ...

  4. 牛客小白月赛1 I あなたの蛙が帰っています 【卡特兰数】

    链接:https://www.nowcoder.com/acm/contest/85/I题目描述 あなたの蛙が帰っています!  蛙蛙完成了一趟旅行,回家啦!但它还是没有去它心中非常想去的几个地方.总共 ...

  5. python基础回顾笔记

    1.知道了什么是编程语言 2.知道了python.C#.Java都是语言的种类 3.python:有很多种 cpython.pypy.jpython... 4.python的执行方式有两种: 解释器 ...

  6. PHP自动生成分页链接

    page.class.php <?php class Page { // 分页栏每页显示的页数 public $rollPage = 5; // 页数跳转时要带的参数 public $param ...

  7. Ansible学习 Playbooks_1

    Playbooks是Ansible中执行较复杂任务的一种的方式,Playbook由1个或多个play组成,语法格式是YAML,下面以一个简单的任务为例,开始我们的Playbook学习: 任务描述: 1 ...

  8. Ball CodeForces - 12D

    传送门 N ladies attend the ball in the King's palace. Every lady can be described with three values: be ...

  9. Codeforces Round #428 (Div. 2) C. dfs

    C. Journey time limit per test 2 seconds memory limit per test 256 megabytes input standard input ou ...

  10. C#学习你需要知道的---(For和Foreach)

    本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/52577283 作者:car ...