|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQLServer还有更多的扩展,可以用存储过程,数据库大小无极限限制。剧本|异步 树形布局是形貌条理数据的罕见办法。本文先容的树形布局天生程序次要由一个ASP页面、二个JavaScript函数组成。该树形布局是异步的,也就是说,节点数据仅在需要时才读取,而不是一次性全体发送到客户端。
1、概述
树形布局中一切的节点都必需包括以上司性:自己的ID,父节点的ID,和本节点的申明(节点文本)。本文用到了一个Access数据库Tree.mdb来保留这些节点信息。Tree.mdb包括表tblTree,其界说以下:
字段称号范例申明
ElementID主动编号节点的独一标识
ParentElementID数字父节点的ID
ElementText文本节点文本
本程序使用Tree.dsn文件界说Tree.mdb数据源。Tree.dsn内容能够用把持面板中的ODBC数据源设置程序失掉,内容以下:
[ODBC]
DRIVER=MicrosoftAccessDriver(*.mdb)
UID=admin
UserCommitSync=Yes
Threads=3
SafeTransactions=0
PageTimeout=5
MaxScanRows=8
MaxBufferSize=512
ImplicitCommitSync=Yes
FIL=MSAccess
DriverId=25
DefaultDir=d:Inetpubwwwroot
DBQ=d:InetpubwwwrootTree.mdb
注重运转本文程序时,应该修正Tree.dsn中的DefaultDir和DBQ,使其指向准确的目次和文件。
客户端功效分两部分完成:其一是一个一般的扫瞄器窗口,其二为一个IFRAME。IFRAME是不成见的,它的感化是卖力扫瞄器窗口与服务器之间的通讯。上面是示例程序的一个运转界面:
【】
树形布局各个节点之间的干系能够用<DIV>标志暗示以下:
【】
在这里,文档的<BODY>是第一层节点(divTree0)的容器,第一层统共包括四个节点,这四个节点又分离是其子节点组的容器。比方,上图中divTree0包括了div1、div2、div3和div4(它们分离对应一个节点);而div1又是divTree1的容器,divTree1包括了div5――div8,div5又是divTree5的容器;而divTree5包括了div9……。
鼠标单击事务由各个节点自己(div1,div2,……)呼应,而不是由容器呼应。节点呼应鼠标单击事务后将克制事务进一步向上(向父节点)传送。这部分功效在GetTree函数内完成,请拜见该函数代码以懂得详细完成办法。
全部树形布局的感化历程可用下图暗示:
【】
2、服务器端代码
客户端剧本向服务器发送的哀求包括了一个节点标识,服务器剧本GetTreeData.asp查找数据库取得该节点的一切子字节点,并将这些子节点前往给客户程序。GetTreeData.asp代码以下:
<%DimrstTree
DimstrSQL
DimstrData
IfRequest.QueryString("Level")=""Then
Response.End
EndIf
strSQL="SELECT*FROMtblTreeWHEREParentElementId="
strSQL=strSQL&Request.QueryString("Level")&"ORDERBYElementID"
SetrstTree=Server.CreateObject("ADODB.Recordset")
rstTree.OpenstrSQL,"FileDSN=d:inetpubwwwrootree.dsn"
strData=""
DoWhileNotrstTree.EOF
strData=strData&rstTree("ElementId")&"|"&rstTree("ParentElementId")&"|"&
rstTree("ElementText")&"|"
rstTree.MoveNext
Loop
rstTree.Close%>
<HTML>
<BODYOnLoad="parent.PopulateTree('<%=strData%>');"></BODY>
</HTML>
注重:在实践利用中应响应地变动DSN文件地点路径。这段代码其实不庞大,但请注重以下两点:第一,客户哀求的格局应当为“GetTreeData.asp?Level=节点ID”;第二,前往客户真个节点列表格局为“节点标识|父节点标识|节点文本|……”。
</p>asp对于服务器的要求较高,一般的服务器如果访问量一大就垮了,不得不重启。 |
|