-
您的位置:首页 → 精文荟萃 → 软件资讯 → 利用ASP脚本制作异步装载的树形结构(一)
利用ASP脚本制作异步装载的树形结构(一)
时间:2004/10/7 19:05:00来源:本站整理作者:蓝点我要评论(0)
-
树形结构是描述层次数据的常见方法。本文介绍的树形结构生成程序主要由一个ASP页面、二个JavaScript函数构成。该树
形结构是异步的,也就是说,节点数据仅在必要时才读取,而不是一次性全部发送到客户端。
一、概述
树形结构中所有的节点都必须包含以下属性:本身的ID,父节点的ID,以及本节点的说明(节点文本)。本文用到了一个
Access数据库Tree.mdb来保存这些节点信息。Tree.mdb包含表tblTree,其定义如下:
字段名称 类型 说明
ElementID 自动编号 节点的唯一标识
ParentElementID 数字 父节点的ID
ElementText 文本 节点文本
本程序利用Tree.dsn文件定义Tree.mdb数据源。Tree.dsn内容可以用控制面板中的ODBC数据源配置程序得到,内容如下:
[ODBC]
DRIVER=Microsoft Access Driver (*.mdb)
UID=admin
UserCommitSync=Yes
Threads=3
SafeTransactions=0
PageTimeout=5
MaxScanRows=8
MaxBufferSize=512
ImplicitCommitSync=Yes
FIL=MS Access
DriverId=25
DefaultDir=d:Inetpubwwwroot
DBQ=d:InetpubwwwrootTree.mdb
注意运行本文程序时,应当修改Tree.dsn中的DefaultDir和DBQ,使其指向正确的目录和文件。
客户端功能分两部分实现:其一是一个普通的浏览器窗口,其二为一个IFRAME。IFRAME是不可见的,它的作用是负责浏览器
窗口与服务器之间的通信。下面是示例程序的一个运行界面:
【图1】
树形结构各个节点之间的关系可以用< DIV >标记表示如下:
【图2】
在这里,文档的< BODY >是第一层节点(divTree0)的容器,第一层总共包含四个节点,这四个节点又分别是其子节点组的
容器。例如,上图中divTree0包含了div1、div2、div3和div4(它们分别对应一个节点);而div1又是divTree1的容器,
divTree1包含了div5——div8,div5又是divTree5的容器;而divTree5包含了div9……。
鼠标单击事件由各个节点本身(div1,div2,……)响应,而不是由容器响应。节点响应鼠标单击事件后将禁止事件进一步
向上(向父节点)传递。这部分功能在GetTree函数内实现,请参见该函数代码以了解具体实现方法。
整个树形结构的作用过程可用下图表示:
【图3】
二、服务器端代码
客户端脚本向服务器发送的请求包含了一个节点标识,服务器脚本GetTreeData.asp查找数据库获得该节点的所有子字节点,
并将这些子节点返回给客户程序。GetTreeData.asp代码如下:
< % Dim rstTree
Dim strSQL
Dim strData
If Request.QueryString("Level") = "" Then
Response.End
End If
strSQL = "SELECT * FROM tblTree WHERE ParentElementId = "
strSQL = strSQL & Request.QueryString("Level") & " ORDER BY ElementID "
Set rstTree = Server.CreateObject("ADODB.Recordset")
rstTree.Open strSQL,"FileDSN=d:inetpubwwwroot ree.dsn"
strData = ""
Do While Not rstTree.EOF
strData = strData & rstTree("ElementId") & "|" & rstTree("ParentElementId") & "|" &
rstTree("ElementText") & "|"
rstTree.MoveNext
Loop
rstTree.Close % >
< HTML >
< BODY OnLoad="parent.PopulateTree('< %=strData% >');" >< /BODY >
< /HTML >
注意:在实际使用中应相应地更改DSN文件所在路径。这段代码并不复杂,但请注意以下两点:第一,客户请求的格式应该为
“GetTreeData.asp?Level=节点ID”;第二,返回客户端的节点列表格式为“节点标识|父节点标识|节点文本|……”。
相关阅读
Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么
-
热门文章
360快剪辑怎么使用 36金山词霸如何屏幕取词百度收购PPS已敲定!3
最新文章
微信3.6.0测试版更新了微信支付漏洞会造成哪
360快剪辑怎么使用 360快剪辑软件使用方法介酷骑单车是什么 酷骑单车有什么用Apple pay与支付宝有什么区别 Apple pay与贝贝特卖是正品吗 贝贝特卖网可靠吗
人气排行
xp系统停止服务怎么办?xp系统升级win7系统方电脑闹钟怎么设置 win7电脑闹钟怎么设置office2013安装教程图解:手把手教你安装与qq影音闪退怎么办 QQ影音闪退解决方法VeryCD镜像网站逐个数,电驴资料库全集同步推是什么?同步推使用方法介绍QQ2012什么时候出 最新版下载EDiary——一款好用的电子日记本
查看所有0条评论>>