1. 從網上下載dtree控件。
2. 在Jbuilder中新建Web應用,命名為TreeLearing。
3. 解壓縮dtree.rar包。
把dtree目錄拷貝至TreeLearing應用中。
dtree目錄下包括這些文件:example01.html 、 dtree.js 、 api.html 、 dtree.css 和img目錄
注意:除了api.html之外,其它的文件都是必須拷貝的。只有這個api.html是對dtree控件的函數介紹。
4. 復制example01.html,并把粘貼后的文件重命名為Tree.jsp。
注意:dtree目錄下的文件結構不要改變,否則樹就不會正常顯示
5. 在Web應用中指定首頁為Tree.jsp頁面。
6. Tree.jsp中的代碼如下:
<!DOCTYPE html PUBLIC "-//W
<html>
<head>
<title>Destroydrop » Javascripts » Tree</title>
<link rel="StyleSheet" href="dtree.css" type="text/css" />
<script type="text/javascript" src="dtree.js"></script>
</head>
<body>
<h1><a href="/">Destroydrop</a> » <a href="/javascripts/">Javascripts</a> » <a href="/javascripts/tree/">Tree</a></h1>
<h2>Example</h2>
<div class="dtree">
<p><a href="javascript: d.openAll();">open all</a> | <a href="javascript: d.closeAll();">close all</a></p>
<script type="text/javascript">
<!--
d = new dTree('d');
d.add(0,-1,'My example tree');
d.add(1,0,'Node 1','example01.html');
d.add(2,0,'Node 2','example01.html');
d.add(3,1,'Node 1.1','example01.html');
d.add(4,0,'Node 3','example01.html');
d.add(5,3,'Node
d.add(6,5,'Node
d.add(7,0,'Node 4','example01.html');
d.add(8,1,'Node 1.2','example01.html');
d.add(9,0,'My Pictures','example01.html','Pictures I\'ve taken over the years','','','img/imgfolder.gif');
d.add(10,9,'The trip to
d.add(11,9,'Mom\'s birthday','example01.html');
d.add(12,0,'Recycle Bin','example01.html','','','img/trash.gif');
document.write(d);
//-->
</script>
</div>
</body>
</html>
7. 刪除紫紅色部分的代碼,因為不需要哦。
8. 注意看綠色和藍色部分的代碼,這才是真正為樹添加節點的部分。
d.add(0,-1,'My example tree');
這一句為樹添加了一個根節點,顯示名稱為'My example tree'
d.add(1,0,'Node 1','example01.html');
這一句在樹的根節點下面添加了一個子節點。(d.add()方法的參數具體含義可參見api.html文件)
常用的:
第一個參數,表示當前節點的ID
第二個參數,表示當前節點的父節點的ID
第三個參數,節點要顯示的文字
第四個參數,點擊該節點的超鏈接(注意也可以是某個servlet或是struts應用中的某個.do請求)
第五個參數,鼠標移至該節點時顯示的文字
第六個參數,指定點擊該節點時在哪個楨中打開超鏈接
9. 運行應用程序。可以看到一棵漂亮的樹。
存儲目錄的改進
dTree的img目錄必須和使用dTree的文件放在同一目錄下,這樣很容易打亂網站的目錄結構,對dTree做了一個微小的改動,增加了一個實例化參數,實例化dTree時可以指定img目錄,打開dtree.js文件。注意保持路徑的一致,可以這樣實例化。
// url圖片目錄路徑
function dTree(objName, url) {
this.config = {
target : null,
folderLinks : true,
useSelection : true,
useCookies : true,
useLines : true,
useIcons : true,
useStatusText : false,
closeSameLevel : false,
inOrder : false
}
this.icon = {
root : url + "/img/base.gif",
folder : url + "/img/folder.gif",
folderOpen : url + "/img/folderopen.gif",
node : url + "/img/page.gif",
empty : url + "/img/empty.gif",
line : url + "/img/line.gif",
join : url + "/img/join.gif",
joinBottom : url + "/img/joinbottom.gif",
plus : url + "/img/plus.gif",
plusBottom : url + "/img/plusbottom.gif",
minus : url + "/img/minus.gif",
minusBottom : url + "/img/minusbottom.gif",
nlPlus : url + "/img/nolines_plus.gif",
nlMinus : url + "/img/nolines_minus.gif"
};
this.obj = objName;
this.aNodes = [];
this.aIndent = [];
this.root = new Node(-1);
this.selectedNode = null;
this.selectedFound = false;
this.completed = false;
};
調用方法:d = new dTree('d','dtree');
修改之后img目錄可以集中放在一處,網站目錄的結構化應該會更好。
api翻譯
函數
add()
向樹里添加一個節點,只能在樹被創建之前調用,必須含有id, pid, name 。
參數:
名字 類型 描述 id Number 唯一的ID號 pid Number 判定父節點的數字,根節點的值為 -1 name String 節點的文本標簽 url String 節點的Url title String 節點的Title target String 節點的target icon String 用做節點的圖標,節點沒有指定圖標時使用默認值 iconOpen String 用做節點打開的圖標,節點沒有指定圖標時使用默認值 open Boolean 判斷節點是否打開
例子:mytree.add(1, 0, ’My node’, ’node.html’, ’node title’, ’mainframe’, ’img/musicfolder.gif’);
openAll()
打開所有節點 ,可在樹被創建以前或以后調用。
例子:mytree.openAll();
closeAll()
關閉所有節點,可在樹被創建以前或以后調用。
例子:mytree.closeAll();
openTo()
Opens the tree to a certain node and can also select the node,只能在樹被創建以后調用。
參數:
名字 類型 描述 id Number 節點唯一的ID號 select Boolean 判斷節點是否被選擇
例子:mytree.openTo(4, true);
配置
變量 類型 默認值 描述 target String true 所有節點的target folderLinks Boolean true 文件夾可鏈接 useSelection Boolean true 節點可被選擇(高亮) useCookies Boolean true 樹可以使用cookies記住狀態 useLines Boolean true 創建帶線的樹 useIcons Boolean true 創建帶有圖標的樹 useStatusText Boolean false 用節點名替代顯示在狀態欄的節點url closeSameLevel Boolean false 只有一個有父級的節點可以被展開,當這個函數可用時openAll() 和 closeAll() 函數將不可用 inOrder Boolean false 如果父級節點總是添加在子級節點之前,使用這個參數可以加速菜單顯示
例子:mytree.config.target = "mytarget";