熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

利用ASP腳本制作異步裝載的樹形結構(一)

2022-06-13   來源: .NET編程 

  樹形結構是描述層次數據的常見方法本文介紹的樹形結構生成程序主要由一個ASP頁面二個&avascript函數構成該樹

  形結構是異步的也就是說節點數據僅在必要時才讀取而不是一次性全部發送到客戶端

  一概述

  樹形結構中所有的節點都必須包含以下屬性本身的ID父節點的ID以及本節點的說明(節點文本)本文用到了一個

  Access數據庫Treemdb來保存這些節點信息Treemdb包含表tblTree其定義如下

  字段名稱 類型 說明

  ElementID 自動編號 節點的唯一標識

  ParentElementID 數字 父節點的ID

  ElementText 文本 節點文本

  本程序利用Treedsn文件定義Treemdb數據源Treedsn內容可以用控制面板中的ODBC數據源配置程序得到內容如下

  [ODBC]

  DRIVER=Microsoft Access Driver (*mdb)

  UID=admin

  UserCommitSync=Yes

  Threads=

  SafeTransactions=

  PageTimeout=

  MaxScanRows=

  MaxBufferSize=

  ImplicitCommitSync=Yes

  FIL=MS Access

  DriverId=

  DefaultDir=d:Inetpubwwwroot

  DBQ=d:InetpubwwwrootTreemdb

  注意運行本文程序時應當修改Treedsn中的DefaultDir和DBQ使其指向正確的目錄和文件

  客戶端功能分兩部分實現其一是一個普通的浏覽器窗口其二為一個IFRAMEIFRAME是不可見的它的作用是負責浏覽器

  窗口與服務器之間的通信下面是示例程序的一個運行界面

  【圖

  樹形結構各個節點之間的關系可以用< DIV >標記表示如下

  【圖

  在這裡文檔的< BODY >是第一層節點(divTree)的容器第一層總共包含四個節點這四個節點又分別是其子節點組的

  容器例如上圖中divTree包含了divdivdiv和div(它們分別對應一個節點)而div又是divTree的容器

  divTree包含了div——divdiv又是divTree的容器而divTree包含了div……

  鼠標單擊事件由各個節點本身(divdiv……)響應而不是由容器響應節點響應鼠標單擊事件後將禁止事件進一步

  向上(向父節點)傳遞這部分功能在GetTree函數內實現請參見該函數代碼以了解具體實現方法

  整個樹形結構的作用過程可用下圖表示

  【圖

  二服務器端代碼

  客戶端腳本向服務器發送的請求包含了一個節點標識服務器腳本GetTreeDataasp查找數據庫獲得該節點的所有子字節點

  並將這些子節點返回給客戶程序GetTreeDataasp代碼如下:

  < % Dim rstTree

  Dim strSQL

  Dim strData

  If RequestQueryString(Level) = Then

  ResponseEnd

  End If

  strSQL = SELECT * FROM tblTree WHERE  ParentElementId =

  strSQL = strSQL & RequestQueryString(Level) & ORDER BY ElementID

  Set rstTree = ServerCreateObject(ADODBRecordset)

  rstTreeOpen strSQLFileDSN=d:inetpubwwwroot    reedsn

  strData =

  Do While Not rstTreeEOF

  strData = strData & rstTree(ElementId) & | & rstTree(ParentElementId) & | &

  rstTree(ElementText) & |

  rstTreeMoveNext

  Loop

  rstTreeClose % >

  < HTML >

  < BODY OnLoad=parentPopulateTree('< %=strData% >'); >< /BODY >

  < /HTML >

  注意在實際使用中應相應地更改DSN文件所在路徑這段代碼並不復雜但請注意以下兩點第一客戶請求的格式應該為

  GetTreeDataasp?Level=節點ID第二返回客戶端的節點列表格式為節點標識|父節點標識|節點文本|……


From:http://tw.wingwit.com/Article/program/net/201404/30517.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.