今天研究了很久,终于把动态加载无刷新树给整出来了,反正刚开始也是在网上搜了很多东东,但感觉都不太方便,最后找到了dtree,又发现一位朋友把dtree的源代码进行了更改,(dtree发布于2003年,那时编写这个javascript脚本的作者估计还不知道ajax这玩意吧,呵呵),就可以实现无刷新动态加载了,废话不说,先把例子整理出来先!
首先是Sql脚本(MSSQL)
IF
EXISTS
(
SELECT
*
FROM
SYSOBJECTS
WHERE
NAME
=
'
PERMISSION
'
)
DROP TABLE PERMISSION
CREATE TABLE PERMISSION
(
PERMISSION_ID INT IDENTITY PRIMARY KEY ,
PERMISSION_NAME VARCHAR ( 20 ) NOT NULL ,
PARENT_ID INT
)
GO
ALTER TABLE PERMISSION ADD CONSTRAINT FK_PARENTID FOREIGN KEY (PARENT_ID) REFERENCES PERMISSION(PERMISSION_ID)
GO
SELECT * FROM PERMISSION
-- 根目录,树开始的地方
INSERT INTO PERMISSION(PERMISSION_NAME) VALUES ( ' 根目录 ' )
-- 根目录下的子节点
INSERT INTO PERMISSION VALUES ( ' 个人事物 ' , 1 )
INSERT INTO PERMISSION VALUES ( ' 公共信息 ' , 1 )
INSERT INTO PERMISSION VALUES ( ' 工作流程 ' , 1 )
INSERT INTO PERMISSION VALUES ( ' 综合行政 ' , 1 )
INSERT INTO PERMISSION VALUES ( ' 系统管理 ' , 1 )
-- 以下元素为 个人事物 的子节点
INSERT INTO PERMISSION VALUES ( ' 日程安排 ' , 2 )
INSERT INTO PERMISSION VALUES ( ' 个人考勤 ' , 2 )
INSERT INTO PERMISSION VALUES ( ' 工作日志 ' , 2 )
INSERT INTO PERMISSION VALUES ( ' 内部短信 ' , 2 )
INSERT INTO PERMISSION VALUES ( ' 内部短信 ' , 2 )
INSERT INTO PERMISSION VALUES ( ' 个人设置 ' , 2 )
-- 以下为 个人设置 的子节点
INSERT INTO PERMISSION VALUES ( ' 个人资料 ' , 12 )
INSERT INTO PERMISSION VALUES ( ' 密码修改 ' , 12 )
INSERT INTO PERMISSION VALUES ( ' 权限信息 ' , 12 )
-- 以下为工作流程的子节点
INSERT INTO PERMISSION VALUES ( ' 新建工作流程 ' , 4 )
INSERT INTO PERMISSION VALUES ( ' 待办工作流程 ' , 4 )
INSERT INTO PERMISSION VALUES ( ' 设计工作流程 ' , 4 )
-- -用来测试的
select permission_id,permission_name, count (permission_id) from permission where 1 = 1 and parent_id is null group by permission_id,permission_name
DROP TABLE PERMISSION
CREATE TABLE PERMISSION
(
PERMISSION_ID INT IDENTITY PRIMARY KEY ,
PERMISSION_NAME VARCHAR ( 20 ) NOT NULL ,
PARENT_ID INT
)
GO
ALTER TABLE PERMISSION ADD CONSTRAINT FK_PARENTID FOREIGN KEY (PARENT_ID) REFERENCES PERMISSION(PERMISSION_ID)
GO
SELECT * FROM PERMISSION
-- 根目录,树开始的地方
INSERT INTO PERMISSION(PERMISSION_NAME) VALUES ( ' 根目录 ' )
-- 根目录下的子节点
INSERT INTO PERMISSION VALUES ( ' 个人事物 ' , 1 )
INSERT INTO PERMISSION VALUES ( ' 公共信息 ' , 1 )
INSERT INTO PERMISSION VALUES ( ' 工作流程 ' , 1 )
INSERT INTO PERMISSION VALUES ( ' 综合行政 ' , 1 )
INSERT INTO PERMISSION VALUES ( ' 系统管理 ' , 1 )
-- 以下元素为 个人事物 的子节点
INSERT INTO PERMISSION VALUES ( ' 日程安排 ' , 2 )
INSERT INTO PERMISSION VALUES ( ' 个人考勤 ' , 2 )
INSERT INTO PERMISSION VALUES ( ' 工作日志 ' , 2 )
INSERT INTO PERMISSION VALUES ( ' 内部短信 ' , 2 )
INSERT INTO PERMISSION VALUES ( ' 内部短信 ' , 2 )
INSERT INTO PERMISSION VALUES ( ' 个人设置 ' , 2 )
-- 以下为 个人设置 的子节点
INSERT INTO PERMISSION VALUES ( ' 个人资料 ' , 12 )
INSERT INTO PERMISSION VALUES ( ' 密码修改 ' , 12 )
INSERT INTO PERMISSION VALUES ( ' 权限信息 ' , 12 )
-- 以下为工作流程的子节点
INSERT INTO PERMISSION VALUES ( ' 新建工作流程 ' , 4 )
INSERT INTO PERMISSION VALUES ( ' 待办工作流程 ' , 4 )
INSERT INTO PERMISSION VALUES ( ' 设计工作流程 ' , 4 )
-- -用来测试的
select permission_id,permission_name, count (permission_id) from permission where 1 = 1 and parent_id is null group by permission_id,permission_name
然后呢,就是修改后的dtree脚本了,这里只放修改后的部分。。。












































































































































然后是html,发现一个问题,为什么把html的页面的编码格式转化成gb2312是话,为什么预览无法显示呢?只有在utf-8的情况下才能正常预览,真挺郁闷的...





























接下来就是Servlet了,没什么好说的。。。
package
com.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.service. * ;
public class TreeServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Integer pid = null ;
response.setContentType( " text/html " );
response.setCharacterEncoding( " utf-8 " );
PrintWriter p = response.getWriter();
String id = request.getParameter( " parentId " );
if (id.equals( " -1 " )){
pid = null ;
} else {
pid = Integer.parseInt(id);
}
TreeService treeSer = new TreeService();
System.out.println(treeSer.getNodesInfo(pid));
p.print(treeSer.getNodesInfo(pid));
}
}
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.service. * ;
public class TreeServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Integer pid = null ;
response.setContentType( " text/html " );
response.setCharacterEncoding( " utf-8 " );
PrintWriter p = response.getWriter();
String id = request.getParameter( " parentId " );
if (id.equals( " -1 " )){
pid = null ;
} else {
pid = Integer.parseInt(id);
}
TreeService treeSer = new TreeService();
System.out.println(treeSer.getNodesInfo(pid));
p.print(treeSer.getNodesInfo(pid));
}
}
然后就是业务了...














































好了,完了,至于源文件的话直接 在csdn上下载吧,我把它上传到我的资源里面