欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-02-16 13:46:04
用asp.net控件实现部门和员工的联动,参考过程如下 效果图:  default.aspx代码: <%@ page language...

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

ASP.NET实现级联下拉框效果实例讲解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实现级联下拉框效果,参考这篇文章:

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

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