当前位置: 移动技术网 > IT编程>开发语言>.net > ASP.NET实现级联下拉框效果实例讲解

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

2017年12月12日  | 移动技术网IT编程  | 我要评论

网游之机战传说,尚学堂马士兵视频,中国北方射击场

用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实现级联下拉框效果实例讲解,希望大家可以学以致用。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网