业务逻辑

我们要实现的一个功能是:在院系表、专业表和学生表三个表中实现选择院系和选择专业的二级联动查询

我们首先看我们要查询的数据总内容
如图 多个院系,每个院系又有多个专业,每个专业又有多名学生数据。

三张表
NO.1 院系表

NO.2 专业表

NO.3 学生表

用控件实现二级联动查询

用控件的方法比较简单
我们用两个DropDownList控件,第一个数据源是院系表,显示院系名字以供选择
第二个DropDownList数据源是专业表,且where条件限制院系。注意,第一个DropDownList需要设置属性AutoPostBacktrue

然后点击button查询按钮
Gridview控件显示数据,数据源设为学生表,where条件限制学生专业与第二个DropDownList一致。
效果如下

用代码实现二级联动查询

使用控件实现的功能虽然简单,但是并不灵活。
比如,还拿刚才的数据来说,我们最终实现的效果是我们实现了院系和专业的二级联动,查询出对应专业的学生。
由于最后GridView控件数据源是学生表,所以只能显示学生表中的内容,也就是说只能显示专业编号和院系编号,如果我们需要显示专业名字和院系名字,显然,需要联结查询,而用设置控件的方式,我们没办法做联结查询,所以,我们需要用代码为DropDownList绑定数据源。
步骤:

  1. 写sql语句
  2. 连接数据库执行sql语句
  3. 将查到的数据存入数据集
  4. 指定数据控件的数据源,并绑定

我们把2,3,4步封装成方法Bind
另外注意:写完动态代码,由于我们是用代码为控件设置的数据源,需要再去设置控件的编辑列,设置为自动生成列

我们在Button按钮里写动态代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;public partial class view : System.Web.UI.Page
{protected void Page_Load(object sender, EventArgs e){if (!IsPostBack)//页面首次加载时,显示全部学生表数据{string sql = "select * from tbstudent";Bind(sql, GridView1);}}protected void Button1_Click(object sender, EventArgs e)//选择好院系和专业 点击查询{string proid = DropDownList2.SelectedValue;string sql = "select * from tbstudent inner join tbprofessional on studentproid=proid where studentproid='"+proid+"'";Bind(sql,GridView1);}public void Bind(string sql, GridView gv) //为GridView控件绑定数据源{SqlCommand cmd = new SqlCommand();cmd = DB.comd(sql);//打开并连接数据库  传入sql语句DataSet ds = new DataSet();//要引入using System.Data;SqlDataAdapter sda = new SqlDataAdapter();sda.SelectCommand = cmd;sda.Fill(ds);//查到的数据存入内存中的数据集gv.DataSource = ds;//指定数据控件的数据源gv.DataBind();//绑定数据源}
}

ASP.NET控件and代码实现二级联动查询相关推荐

  1. [导入]Asp.net 2.0 自定义控件开发[创建自定义浮动菜单FloadMenu控件][示例代码下载]...

    Asp.net 2.0 自定义控件开发[创建自定义浮动菜单FloadMenu控件][示例代码下载] 文章来源:http://blog.csdn.net/chengking/archive/2007/0 ...

  2. 使用 ASP+ DataGrid 控件来创建主视图/详细资料视图

    Nikhil Kothari Microsoft Corporation 2000年8月 简介 Microsoft® Visual Studio.NET 的下一发行版包括 DataGrid Web 控 ...

  3. 一起谈.NET技术,asp.net控件开发基础(18)

    本篇继续上篇的讨论,可能大家已经在使用asp.net2.0了,DataSource属性不再使用,而是跟数据源控件搭配使用.现在讨论的绑定技术都是基于1.1版本,先熟悉一下,本质上是一样的,这样一步步的 ...

  4. 控件包含代码块,因此无法修改控件集合

    文章转载至:  http://www.olnote.com/itlife/note/100000003.aspx 控件包含代码块(即<% ... %>),因此无法修改控件集合. 说明: 执 ...

  5. ASP:Literal控件用法

    ASP:Literal控件用法 刚开始学.NET的朋友可能不清楚Literal和Label到底有什么区别,其实它们也只有一个区别,就是在转换成客户端Html代码后,Label就成了<span&g ...

  6. 一起谈.NET技术,asp.net控件开发基础(20)

    上面我们讨论了数据绑定控件的做法,但都未涉及到asp.net2.0中数据源控件的用法,让用惯了数据源控件的人可能感觉不适应.这次我们就开始讨论在asp.net2.0中,我们该如何重新定义数据绑定控件. ...

  7. Silverlight 3.0 不再包含 asp:silverlight 控件

    从 Silverlight 2 升级到 Silverlight 3 可能会报如下错误,程序中可能引用了 asp:silverlight 控件: Could not load file or assem ...

  8. asp.net控件本质

    .net控件本质 在我的一个项目中需要对于控件进行区分总结,我在网上找了找加上自己的实际测试总结如下:(如果有什么不正确的请即使指出,一起讨论,大家共同进步)         asp.net之所以现在 ...

  9. Asp.net控件之异同:HTML控件与Web服务器控件

    Asp.net之所以现在开发方便和快捷,关键是它有一组强大的控件库,包括web服务器控件,web用户控件,web自定义控件,html服务器控件和html控件等.这里我主要说说html控件.html服务 ...

  10. asp.net控件库FineUI使用入门图解

    FineUI是一个基于 jQuery / ExtJS 的 ASP.NET 控件库,其宣传语是: 创建 No JavaScript,No CSS,No UpdatePanel,No ViewState, ...

最新文章

  1. php查询mysql放到数组中_php查询mysql数据库并将结果保存到数组的方法
  2. 消息中间件的多个企业级场景案例--分析
  3. 关于readdir返回值中struct dirent.d_type的取值有关问题(转)
  4. python最简单的wsgi例子
  5. apache 支持php urlmanager,Yii中urlManager的配置
  6. 【强化学习入门】梯度赌博机算法中,偏好函数更新:梯度上升公式是精确梯度上升的随机近似的证明
  7. matlab数字仿真实验,matlab数值仿真
  8. MATLAB下载安装
  9. Webix JavaScript UI 新版得心应手
  10. 求助:python爬取国家统计局多个列表数据时出错
  11. 六轴传感器icm20602的自检和校准学习
  12. 对ashx请求用Gzip,Deflated压缩
  13. 音视频专题--音频剪辑原理
  14. 处理安全检查的项目代码异常解决记录
  15. css有几种选择器,有什么区别?
  16. excel数据透视表_无痛的方式隐藏Excel数据透视表项
  17. Android 图片波浪动画,Android水纹波浪动画
  18. 二、对HEVC/H.265视频编解码器进行隐写的基本思路
  19. 阶乘约数【蓝桥杯国赛】
  20. 深度优先搜索和深度优先搜索的区别

热门文章

  1. Servlet(Request.Response)+文件上传
  2. C言语次序查找算法及代码
  3. inux系统磁盘管理基础知识及总结
  4. Redis命令拾遗四——集合类型(命令补充)
  5. 2015-2016-2 《Java程序设计》项目小组博客
  6. 如何在App中实现朋友圈功能之一朋友圈实现原理浅析——箭扣科技Arrownock
  7. jquery设置元素的readonly和disabled
  8. 了解人工智能与智能系统中的先驱人物
  9. hibernate 逆向工程对数据库进行CRUD操作
  10. 按位与、或、异或等运算方法(转)