用asp+javascript实现动态数据联动,不刷新
2008-02-23 09:40:55来源:互联网 阅读 ()
/////////////Chinese:蒋健华
/////////////email:jjh_115@eyou.com
联动,联动,联动。。。。困扰了好多网友的神经,在CSDN-ASP板块中,总是看到网友们大呼救命,救什么?联动!为什么联动这样受到关注,其实用性无可非议,用户也能认可,可是如果数据是大量并相互关联的,那问题就来了,怎么识别并显示是一个很苦恼的问题。那究竟有没有一个很好的解决办法呢?答案是肯定的,因为我们有asp和javascript,哈哈,那么我们就开始行动吧!
我们要获得的数据,既然要达到联动的效果,肯定这些数据是有关联的,那么我们用这样的实例来说明我们的方法
准备条件:
SQL SERVER 2000 中文企业版,IIS5.0 ,IE5.0 ,当然,最好有一个好的编辑器,VS.NET就不错,当然,如果你是记事本的拥护者,那我也没办法。L
我们以人事管理中的部门级别进行联动方法的说明,认识管理中的部门级别可以这样定义,也是实际企业的定义规则,**化工厂/**系统/**部,举例说明就是
××化工厂/营销系统/市场部,在文中,FirstOrganization表对应的是”××化工厂”,SecondOrganization对应的是”营销系统”,ThirdOrganization对应的是”市场部”
在SQL SERVER 2000中新建两个表,或者三个表,为了我们能更大限度的发挥联动的功能,我们建三个表,呵呵。
数据库名称:xxrl_STUDY,用户名xxrl_STUDY,密码xxrl_STUDY
接着建ODBC数据源,你也可以不用,但我这样用,呵呵
ODBC名:xxrl_ ODBC,用用户名xxrl_STUDY,密码xxrl_STUDY连接,指向xxrl_STUDY数据库,默认中文设置,测试――>ok
新建表:
第一个表FirstOrganization
SQL脚本如下:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FirstOrganization]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[FirstOrganization]
GO
CREATE TABLE [dbo].[FirstOrganization] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[OrganizationName] [varchar] (100) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[Description] [varchar] (8000) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
第二个表SecondOrganization
SQL脚本如下:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[SecondOrganization]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[SecondOrganization]
GO
CREATE TABLE [dbo].[SecondOrganization] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[parentID] [int] NOT NULL ,
[OrganizationName] [varchar] (100) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[Description] [varchar] (8000) COLLATE Chinese_PRC_CI_AS NULL ,
[OrderNumber] [int] NULL
) ON [PRIMARY]
GO
第三个表ThirdOrganization
SQL脚本如下:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[ThirdOrganization]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[ThirdOrganization]
GO
CREATE TABLE [dbo].[ThirdOrganization] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[parentID] [int] NOT NULL ,
[OrganizationName] [varchar] (100) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[Description] [varchar] (8000) COLLATE Chinese_PRC_CI_AS NULL ,
[OrderNumber] [int] NULL
) ON [PRIMARY]
GO
Ok,ODBC,我们建好了,数据库也建好了,至于站点的配置,我想大家都应该知道的,这里不再陈述。这里我的站点IP是http://200.100.100.88 (内部网络IP)
终于开始写程序喽,好累,噗哧,噗哧,刚帮我同事搬东西,歇一会儿,coffee-ing……….
好的,为了方便IIS他老人家,我们也懒得敲多余的字母,我们是聪明的,不勤劳的程序员,本来程序员就已经够累的了,还不方便我们自己?嘿嘿,赞同者鼓掌,啪啪啪啪,faint,哪来的鞭炮?啥家的小孩也不好好管管。。。。。。。。。J
新建default.asp文件,我们在写如下程序,
建立数据库连接对象,
set objconn=server.CreateObject("adodb.connection")
objconn.Open " xxrl_ ODBC ","xxrl_STUDY","xxrl_STUDY"
然后打开我们要进行操作的3个数据集
dim sql1,sql2,sql3
sql1="select * from FirstOrganization"
sql2 = "select * from SecondOrganization"
sql3 = "select * from ThirdOrganization"
‘/////////////////////////打开第一组织库
set rs1=server.CreateObject("adodb.recordset")
rs1.Open sql1,objconn,1,1
set rs2=server.CreateObject("adodb.recordset")
rs2.Open sql2,objconn,1,1
set rs3=server.CreateObject("adodb.recordset")
rs3.Open sql3,objconn,1,1
建一个SELECT类型的HTTP控件,包含在form表单中如下:
‘////////////////////控件的初始值是从FirstOrganization中读取的,FirstOrganization在本例子中只有一个数据就是××化工厂代码如下:
<form name=form1 style="margin:0;" method="post">
<select name=FirstOrganization>
<%
if rs1.RecordCount >0 then
Response.Write"<option value="&rs1(“id”)&”>”&rs1("OrganizationName")&"</option>"
Else
Response.Write "没有配置"
end if
%>
</select>
</form>
好,这就是我们的联动功能的头
下面我们要建立第二个select控件了,第二个select控件中,我们用到了onchange函数,关于这个函数的详细解释,请看MSDN。代码如下(包含在form中):
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:实用技巧:用ASP建立网站地图
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash