当前位置: 移动技术网 > IT编程>开发语言>.net > ASP.net 控件实现数据级联

ASP.net 控件实现数据级联

2019年05月10日  | 移动技术网IT编程  | 我要评论

太阳之泪qvod,宜都市,中华美食网

今天我们来一起用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;
            
        }
    }
}


总结:

我们不断的在学习每一个控件的使用,一方面让我们能更加灵活的运用其方法和特性,另一方面也让我们更加熟悉每一种语言。虽然都是一小步一小步的去走,每每成功一个也还是感到喜悦。





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

相关文章:

验证码:
移动技术网