基於資料庫動態產生樹形目錄

來源:互聯網
上載者:User
動態|資料|資料庫 一、 分類樹的廣泛應用
為了這段內容,在百度上搜了搜,內容一大通,相關的竟沒有。搜什麼搜嘛?用處不是明擺著嗎?資源管理員檔案夾的管理,論壇中多級論壇的管理,JAVA中的AWT正是缺乏包括樹形目錄這樣的組件才用處受限......誰這麼沒禮貌,一點面子都不給,叫我怎麼講下去?清了清嗓子:

在我們項目中常常會出現自關聯的資料表,從整體看去,整個表就呈現為一個樹形資料結構。當我們對這個表進行顯示、編輯時,如果不採用好的表現形式,會顯得很笨拙,採用樹形目錄進行管理顯然是一個不錯的主意。

(斧子掄了一圈,感覺好極了,接著講...)在WEB中樹形目錄可以用Javascript實現,但一些細節問題上例如樹形目錄傳值(點擊一個子節點,開啟相關連結),多級目錄以及節點的增加、刪除、拖動上受各種制肘。其實採用第三方控制項顯然也是個不錯的主意。

二、 關於智島分類樹控制項

好,我們今天的主人公--輕便犀利的智島分類樹控制項(下載地址:http://www.oapro.com/ostarocx/download/OTree.ocx)出場了。它採用VC++6.0開發,是標準的OCX控制項,可以應用於Windows環境下VB、VC、PB、Dephi、ASP、JSP等程式設計語言中。它採用XML檔案作為介面檔案,該介面檔案既可以是一個現成的檔案,也可以是動態產生的XML格式檔案(換句話說可以基於資料庫動態組建目錄樹節點)。智島分類樹控制項支援節點的複製、移動、重新命名以及許可權控制項,並且沒有對目錄的層數進行限制。介紹了這麼多,想必欲欲越試了。在ASP中小試牛刀先:

三、 註冊添加控制項

1. 註冊智島分類樹控制項

下載(下載地址:http://www.oapro.com/ostarocx/download/OTree.ocx)智島分類樹控制項(其檔案名稱為OTree.ocx)後,按照如下方法註冊控制項:

點擊“開始”→“運行”;在運行對話方塊中輸入以下命令:
regsvr32 < OTree.ocx檔案的絕對路徑>  註冊智島分類樹控制項控制項
regsvr32 /u < OTree.ocx檔案的絕對路徑> 解除智島分類樹控制項的註冊

2. 在頁面中添加智島分類樹控制項

在頁面中加入以下代碼,即可插入智島分類樹控制項:

<object classid="clsid:D835ED15-0BD0-4F24-AC76-A60175AE1137" id="OTree" width="150" height="0"
CODEBASE="http://www.oapro.com/ostarocx/download/OTree.ocx">
<param name="_Version" value="65536">
<param name="_ExtentX" value="2646">
<param name="_ExtentY" value="1323">
<param name="_StockProps" value="0">
</object>

其中:
width和height:指控制項的顯示寬度和高度;
id:指控制項對象的名稱,通過該名稱實現對控制項的操作;
CODEBASE:指沒有安裝智島分類樹控制項的用戶端運行該頁面時自動下載安裝該控制項的地址。

三、 從XML檔案產生樹形目錄

1. XML文檔格式

XML是個好東東,不過也要符合一定的格式呀,不然控制項可不認哦!下面是一份XML文檔格式:

<?xml version="1.0" encoding="GB2312"?>
<NaviTree>
<NodeItem>
<NodeName> </NodeName><!--節點名稱-->
<NodeType> </NodeType><!--節點類型-->
<NodeData> </NodeData><!--節點資料-->
<ImageIndex> </ImageIndex><!--節點圖片-->
<Creator> </Creator><!--產生者-->
<RightDepartmen>|開發部|</RightDepartmen><!--對此目錄有權的部門-->
<RightUser> </RightUser><!--對此目錄有權的使用者-->
<Lock> </Lock><!--是否鎖定0/1-->
</NodeItem>
...
</NaviTree>

其中:
NodeName:指節點名稱,如有上級節點,要包括上級節點名稱,節點名稱間以符號"\"分隔。例“我的辦公桌\公告通知\電子郵件”表明根節點為“我的辦公桌”,父節點為“公告通知”,本節點為“電子郵件”。如果問你包含五級的節點名稱是怎樣時,呵呵,不要拿西紅柿扔我!
NodeType:節點類型,一般均指“href”。
ImageIndex:節點名稱前顯示的小表徵圖,其中0表示檔案夾狀表徵圖,4表示資料表狀表徵圖。

下面是一份xml格式文檔源碼:

<?xml version="1.0" encoding="GB2312"?>
<NaviTree>
<NodeItem>
<NodeName>我的辦公桌</NodeName><!--節點名稱-->
<NodeType>href</NodeType><!--節點類型-->
<NodeData>MyDesk.aps</NodeData><!--節點資料-->
<Lock>0</Lock><!--是否鎖定0/1-->
<ImageIndex>0</ImageIndex>
</NodeItem>
<NodeItem>
<NodeName>我的辦公桌\公告通知</NodeName><!--節點名稱-->
<NodeType>href</NodeType><!--節點類型-->
<NodeData>公告通知.aps</NodeData><!--節點資料-->
<Lock>0</Lock><!--是否鎖定0/1-->
<ImageIndex>0</ImageIndex>
</NodeItem>
<NodeItem>
<NodeName>我的辦公桌\公告通知\電子郵件</NodeName><!--節點名稱-->
<ImageIndex>0</ImageIndex>
</NodeItem>
<NodeItem>
<NodeName>我的辦公桌\公告通知\電子郵件\收件匣</NodeName><!--節點名稱-->
<ImageIndex>4</ImageIndex>
</NodeItem>
<NodeItem>
<NodeName>我的辦公桌\公告通知\電子郵件\寄件匣</NodeName><!--節點名稱-->
<ImageIndex>4</ImageIndex>
</NodeItem>
<NodeItem>
<NodeName>我的辦公桌\公告通知\電子郵件\已發郵件</NodeName><!--節點名稱-->
</NodeItem>
<NodeItem>
<NodeName>我的辦公桌\排程</NodeName><!--節點名稱-->
<ImageIndex>0</ImageIndex>
</NodeItem>
<NodeItem>
<NodeName>我的辦公桌\排程\日曆</NodeName><!--節點名稱-->
</NodeItem>
</NaviTree>

2. 代碼實現

通過以下語句通知智島分類樹控制項開啟XML文檔:



相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

Starter Package

SSD Cloud server and data transfer for only $2.50 a month

Get Started >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。