|
Posted on 2011-01-22 09:36 viery 閱讀(1558) 評論(0) 編輯 收藏
要實現上面的導航樹我們不需要做太多的東西就可以完成
首先我們需要從官網上下載 js 文件 http://destroydrop.com/javascripts/tree/
之后新建一個 html 文件 引入下載文件中的 css 樣式 和 js 文件 調用方法即可!
<html>
<head>
<title>js樹 ant</title>
<link rel="StyleSheet" href="dtree.css" type="text/css" />
<script type="text/javascript" src="dtree.js"></script>
</head>
<body>
<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,'客戶關系管理系統');
d.add(1,0,'營銷管理','example01.html');
d.add(2,1,'銷售機會管理','example01.html');
d.add(3,1,'客戶開發計劃','example01.html');
d.add(4,0,'客戶管理','example01.html');
d.add(5,4,'客戶信息管理','example01.html');
d.add(6,4,'客戶流失管理','example01.html');
d.add(7,0,'服務管理','example01.html');
d.add(8,7,'服務創建','example01.html');
d.add(9,7,'服務分配','example01.html');
d.add(10,7,'服務處理','example01.html');
d.add(11,7,'服務反饋','example01.html');
d.add(12,7,'服務歸檔','example01.html');
d.add(13,0,'統計報表','example01.html');
d.add(14,13,'客戶貢獻分析','example01.html');
d.add(15,13,'客戶構成分析','example01.html');
d.add(16,13,'客戶服務分析','example01.html');
d.add(17,13,'客戶流失分析','example01.html');
d.add(18,0,'基礎數據','example01.html');
d.add(19,18,'數據字典管理','example01.html');
d.add(20,18,'查詢產品信息','example01.html');
d.add(21,18,'查詢庫存','example01.html');
document.write(d);
</script>
</div>
</body>
</html>
|
這樣做的好處是我們不需要自己寫 js 代碼框架已經為我們封裝好了!我們只需要調用存在的方法即可!
對于 tree.add(id,pid,name,url,title,target,icon,iconOpen,open); 方法中的參數這里有必要說一下
Parameters
Name |
Type |
Description |
id |
Number |
Unique identity number. |
pid |
Number |
Number refering to the parent node. The value for the root node has to be -1. |
name |
String |
Text label for the node. |
url |
String |
Url for the node. |
title |
String |
Title for the node. |
target |
String |
Target for the node. |
icon |
String |
Image file to use as the icon. Uses default if not specified. |
iconOpen |
String |
Image file to use as the open icon. Uses default if not specified |
open |
Boolean |
Is the node open. |
Example
mytree.add(1, 0, 'My node', 'node.html', 'node title', 'mainframe', 'img/musicfolder.gif');
上面是引自 dtree api 中的描述
下面是翻譯后的描述:
id :節點自身的id
pid :節點的父節點的id
name :節點顯示在頁面上的名稱
url :節點的鏈接地址
title :鼠標放在節點上所出現的提示信息
target :節點鏈接所打開的目標frame(如框架目標mainFrame或是_blank,_self之類)
icon :節點關閉時的顯示圖片的路徑
iconOpen:節點打開時的顯示圖片的路徑
open :布爾型,節點是否打開(默認為false)
===========================================================================================
Ok 按照上面的方式我們就可以很快的創建一個樹形目錄,但是如果管理員想增加一個功能或者移除一個功能的話,那么就需要更改頁面中 js 中的代碼。能不能將所有的節點信息存放在數據庫中,在加載這個 jsp/html 頁面的時候讀取出數據呢 ?
為此我們需要設計一個數據庫和表,建一張 DTree 表,表中有九列沒分別為 add 方法中的參數
下面是數據庫的腳本 不想自己寫了 在網上找了一個
use master
go
if exists (select * from sysdatabases where name = 'tree')
drop database tree
go
create database tree
go
use tree
go
create table dtree
(
id int identity(1,1) primary key, --節點編號
pid int, --父節點
[name] varchar(20), --節點名稱
url varchar(20), --連接地址
title varchar(20), --節點描述
target varchar(20), --Target
icon varchar(20), --圖標
iconOpen varchar(20), --展開狀態下的圖標路徑
[open] varchar(20) --是否展開
)
insert into dtree values('-1','Y106班','index.jsp','班級','blank','','','')
insert into dtree values('1','教師','teacher.jsp','教師','blank','','','')
insert into dtree values('1','班干部','depater.jsp','班干','blank','','','')
insert into dtree values('1','組長','lady.jsp','組員','blank','','','')
insert into dtree values('1','學員','stu.jsp','學員','blank','','','')
insert into dtree values('1','班主任','leader.jsp','班主任','blank','','','')
insert into dtree values('1','教員','teacher.jsp','教員','blank','','','')
insert into dtree values('2','班長','index.jsp','班長','blank','','','')
insert into dtree values('2','學委','index.jsp','學委','blank','','','')
insert into dtree values('4','學員1','stu.jsp','學員','blank','','','')
insert into dtree values('4','學員2','stu.jsp','學員','blank','','','')
insert into dtree values('4','學員3','stu.jsp','學員','blank','','','')
insert into dtree values('4','學員4','stu.jsp','學員','blank','','','')
insert into dtree values('4','學員5','stu.jsp','學員','blank','','','')
insert into dtree values('4','學員6','stu.jsp','學員','blank','','','')
insert into dtree values('4','學員7','stu.jsp','學員','blank','','','')
Go
select id,pid,[name],url,title,target,icon,iconOpen,[open] from dtree
|
編寫一個數據庫訪問類 并返回 DTree 表中的數據
DBManager.java 數據庫訪問類 并取得 DTree 表中的所有數據
package com.ant.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import com.ant.po.DTree;
public class DBManager {
private static final String DRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver";
private static final String URL="jdbc:sqlserver://localhost:1433;databaseName=tree";
private static final String SA="sa";
private static final String PWD="sqlpwd";
static private Connection conn;
public DBManager() {
getConnection();
}
//打開連接
public static void getConnection(){
try {
Class.forName(DRIVER);
conn=DriverManager.getConnection(URL,SA,PWD);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
//關閉連接
public static void closeConnection(){
if(conn!=null){
try {
if(!conn.isClosed()){
conn.close();
conn=null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
//執行查詢
public static ResultSet executeQuery(String sql){
getConnection();
Statement st;
try {
| |