ASP.NET实现级联下拉框效果实例讲解
程序员文章站
2024-02-16 13:46:04
用asp.net控件实现部门和员工的联动,参考过程如下
效果图:
default.aspx代码:
<%@ page language...
用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实现级联下拉框效果实例讲解,希望大家可以学以致用。