ASP.NET实现级联下拉框效果实例讲解

用ASP.NET控件实现部门和员工的联动,参考过程如下
效果图:

Default.aspx代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 <title></title>
</head>
<body>
 <form id="form1" runat="server">
 <div> 

 <asp:DropDownList ID="ddlDep" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlDep_SelectedIndexChanged">
 </asp:DropDownList>
 <br />
 <asp:ListBox ID="lBoxEmp" runat="server"></asp:ListBox> 

 </div>
 </form>
</body>
</html> 

Default.aspx.cs代码:

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; 

public partial class _Default : System.Web.UI.Page
{
 protected void Page_Load(object sender, EventArgs e)
 {
 if (!this.IsPostBack)
 {
  SqlConnection con = DBCon.createConnection();
  con.Open();
  //显示部门
  SqlCommand cmd = new SqlCommand("select * from Tdepartment", con);
  SqlDataReader sdr = cmd.ExecuteReader();
  this.ddlDep.DataSource = sdr;
  this.ddlDep.DataTextField = "depName";
  this.ddlDep.DataValueField = "depID";
  this.ddlDep.DataBind();
  sdr.Close();
  //显示员工
  SqlCommand cmdEmp =new SqlCommand ("select * from emp where depID=" + this.ddlDep .SelectedValue ,con);
  SqlDataReader sdrEmp = cmdEmp.ExecuteReader();
  while (sdrEmp.Read())
  {
  this.lBoxEmp.Items.Add (new ListItem(sdrEmp.GetString(1),sdrEmp .GetInt32 (0).ToString ()));
  }
  sdrEmp.Close();
  //关闭连接
  con.Close();
 }
 }
 protected void ddlDep_SelectedIndexChanged(object sender, EventArgs e)
 {
 this.lBoxEmp.Items.Clear();
 SqlConnection con = DBCon.createConnection();
 con.Open();
 SqlCommand cmdEmp = new SqlCommand("select * from emp where depID=" + this.ddlDep.SelectedValue, con);
 SqlDataReader sdrEmp = cmdEmp.ExecuteReader();
 while (sdrEmp.Read())
 {
  this.lBoxEmp.Items.Add(new ListItem(sdrEmp.GetString(1), sdrEmp.GetInt32(0).ToString()));
 }
 sdrEmp.Close();
 //关闭连接
 con.Close();
 }
}

DBCon.cs代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.SqlClient; 

/// <summary>
/// DBCon 的摘要说明
/// </summary>
public class DBCon
{
 public DBCon()
 {
 //
 // TODO: 在此处添加构造函数逻辑
 //
 }
 public static SqlConnection createConnection()
 {
 SqlConnection con = new SqlConnection("server=.;database=department;uid=sa;pwd=123456");
 return con;
 }
}

使用Asp.net控件实现比较简单,但在大量用户使用的情况下最好不要使用,不断向服务器请求会给服务器带来很大的负担。使用JQuery和ajax实现可以有动态效果,实现过程比较复杂,但有数据缓冲和ajax局部刷新可以减少服务器的负担,JQuery实现级联下拉框效果,参考这篇文章:http://www.jb51.net/article/72366.htm

如果大家还想深入学习,可以点击jquery下拉框效果汇总、JavaScript下拉框效果汇总进行学习。

以上就是ASP.NET实现级联下拉框效果实例讲解,希望大家可以学以致用。

(0)

相关推荐

  • asp.net DropDownList实现二级联动效果

    最近在做新闻发布系统的时候,用到了二级联动,我把使用方法记录下来,以便日后查阅以及帮助新手朋友们.下面是效果图: 下面来讲解一下实现的方法: 1.在.aspx页面中,拖入两个DroDownList控件.代码如下: <tr> <td>新闻风格:</td> <td><asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True&q

  • jQuery+Asp.Net实现省市二级联动功能的方法

    本文实例讲述了jQuery+Asp.Net实现省市二级联动功能的方法.分享给大家供大家参考,具体如下: 页面html: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="ddlAjax.aspx.cs" Inherits="ThreeAjaxDrop_ddlAjax" %> <!DOCTYPE html PUBLIC "-//W3C//D

  • asp.net省市三级联动的DropDownList+Ajax的三种框架(aspnet/Jquery/ExtJs)示例

    本文主要列举了省市三级联动的DropDownList+Ajax的三种框架(aspnet/Jquery/ExtJs)示例.前段时间需要作一个的Web前端应用,需要用多个框架,一个典型的应用场景是省市三级联动,基于此应用,特将三种主要的ajax框架略作整理,方便有需要的朋友查阅. 在示例之前,我们先设置一个演示数据源,新建一个项目,项目结构如图: 主要文件如下:AreaModel.cs: 复制代码 代码如下: using System; using System.Collections.Generi

  • asp.net DropDownList 三级联动下拉菜单实现代码

    复制代码 代码如下: if (!IsPostBack) { //一级分类列表 this.DropDownList1.DataSource = dsbb.SelectSubjct1(); this.DropDownList1.DataTextField = "cName"; this.DropDownList1.DataValueField = "Ccode"; this.DropDownList1.DataBind(); this.DropDownList1.Ite

  • ASP.NET MVC下拉框联动实例解析

    两个DropDownList的联动,选择其中一个DropDownList,然后加载数据到另外的一个DropDownList上           这里,我打算实现的需求是:有两个DropDownList,一个默认加载所有的省份数据,然后,当我选择省份的时候,把对应的市的数据,绑定到另外一个DropDownList上面,即实现了联动. 好了,这里不打算使用EF了,换用ADO.NET.首先新建好数据库,表: USE master GO IF EXISTS (SELECT * FROM sysdata

  • ASP.NET中DropDownList和ListBox实现两级联动功能

    DropDownList和ListBox实现两级联动功能,它们可以将从后台数据库中搜选的出来的信息加以绑定,这里要实现的功能是在DropDownList中选择"省",然后让ListBox自动将其省份下的"市"显示出来,这就是所谓的两级联动功能,这个功能我们在很多注册网页上看见,今天就为大家解开ASP.NET神秘的面纱. 一.设置前台界面,在Web窗体中添加DropDownList和ListBox两个控件. 界面图如下所示. 二.编写后台代码 在这,后台代码编写在其窗

  • asp.net两级联动(包含添加和修改)

    <script language="javascript" type="text/javascript"> //科目数据初始化 var subcat = new Array(); subcat[0] = new Array('0', '请选择科目', '0'); subcat[1] = new Array('x1', '语文', 'x1yw'); subcat[2] = new Array('x2', '语文', 'x2yw'); subcat[3] =

  • ASP.NET Ajax级联DropDownList实现代码

    了解级联DDL 那么考虑以下几种常见情景: · 用户注册时需要选择国家.省.市.地区等. · 用户购买产品时选择产品类别.产品名称.产品型号. 以上的例子有一些共同特点: · 上一级(如省)选择后下一级(如市)才可以选择. · 下一级的内容由上一级的内容决定. 像这样的一组DropDownList就是级联DDL.常见的解决方法是将带有层次的数据写入XML,然后设置DropDownList的AutoPostBack属性为"True"开启自动回调,最后处理SelectedIndexChan

  • asp.net下使用AjaxPro实现二级联动代码

    复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Test.aspx.cs" Inherits="Test" %> <!DOCTYPE html PUBLIC "-//W3C//Dtd XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1

  • 适用与firefox ASP.NET无刷新二级联动下拉列表

    可能"极好的"又会带来很多的非议,但是我认为这确实很好,我看了大约20个无刷新的连动下拉列表,他们在firefox下面就一团糟.为了这个我差不多搞了两天,就是如果提交窗体后如何保持第二个列表框的值,因为通过js 给下拉框添加条目那么他的状态是不会被保存的测试平台:ie6,firefox 功能:二级无刷新连动 特点:跨浏览器;提交窗体取第二下拉框的值;数据来源于数据库;以xmlhttp来发送请求,实现无刷新 请求:如果您能够找到更好的方法请告诉我,非常感谢,您的批评和建议对我是莫大的鼓励

随机推荐