ASP.net 控件实现数据级联
程序员文章站
2022-05-15 23:41:33
今天我们来一起用asp.net实现一个级联,这个小不点应该是会经常用到的的。
咱们简单的画两个窗体。文本框会根据下拉框所选的内容显示不同的内容。
具体实现效果如下
步骤...
今天我们来一起用asp.net实现一个级联,这个小不点应该是会经常用到的的。
咱们简单的画两个窗体。文本框会根据下拉框所选的内容显示不同的内容。
具体实现效果如下
步骤一:
准备工作,建立相应的。
显示效果如下
附脚本如下
create database department use department create table tdepartment ( depid int primary key, depname varchar(30) not null ) insert into tdepartment values(1,'教务') insert into tdepartment values(2,'高校') insert into tdepartment values(3,'办公室') create table emp ( empid int primary key, empname varchar(30) not null, depid int foreign key references tdepartment(depid) ) insert into emp values(1,'小马',1) insert into emp values(2,'小丹',1) insert into emp values(3,'小妹',1) insert into emp values(4,'马丹妹',3)
步骤二:
新建项目为 asp.ne web 窗体应用程序。在窗体中画 图中的两个控件。dropdownlist 和listbox,分别命名为 ddldep 和lboxemp。同时将dropdownlist中autopostback属性设置为true(目的是让每次重选列表能有响应)。
我们需要在formload 和ddldep_selectedindexchanged 时间中编写相应的代码。其中ddldep_selectedindexchanged是选中空间ddldep在右侧属性-事件中双击时间selectedindexchanged
using system; using system.collections.generic; using system.web; using system.web.ui; using system.web.ui.webcontrols; using system.data.sqlclient;//数据库 namespace department { public partial class webform1 : system.web.ui.page { protected system.web.ui.webcontrols.listbox lboxemp; protected system.web.ui.webcontrols.dropdownlist ddldep; 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(); } } }
以上是主要内容,下面把获取数据库的语句写在下面。这样便是一个完整的小功能。
using system; using system.data.sqlclient; namespace department { public class dbcon { public dbcon(){ } public static sqlconnection createconnection() { sqlconnection con = new sqlconnection("server=.;database=department;uid=sa;pwd=123456;"); return con; } } }
总结:
我们不断的在学习每一个控件的使用,一方面让我们能更加灵活的运用其方法和特性,另一方面也让我们更加熟悉每一种语言。虽然都是一小步一小步的去走,每每成功一个也还是感到喜悦。
下一篇: 祖国的未来都寄托在这群熊孩子身上了