1,首先需要增加jquery的一些css和js
如:<link rel="stylesheet" type="text/css" href="public/css/zTreeStyle/zTreeStyle.css">
<link rel="stylesheet" type="text/css" href="public/css/icon.css">
</head>
<script type="text/javascript" src="public/js/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="public/js/jquery.ztree.core-3.0.min.js"></script>
<script type="text/javascript" src="public/js/json2.js"></script>
2 有一个id的ul标签,同时带有class
如:<ul id="tree" class="ztree" >
</ul>
3 js中进行设置,通过ajax返回数据。
如:function btn_b1_click(){
var name="xcl";
var url="login!getJson?name="+name;
jQuery.ajax({
url:url,
type:"post",
dataType:"json",
success:function getSuccess(data){
//alert(JSONdata);
//alert(JSON.stringify(data));
//alert(data.rtn_value);
rtn_value=data.rtn_result;
//alert(rtn_value);
$.fn.zTree.init($("#tree"),setting,rtn_value);//初始化过程
}
});
}
4 设置setting:
如:var treeObj,setting={
data:{
key:{
title:'t'
},
simpleData:{
enable:true
}
},
callback:{
onClick:onClick1
}
};
function onClick1(event,treeId,treeNode,clickFlag){
alert(treeNode.id);
}
5 后台java语句,必须是json格式的,要像:
{"rtn_result":[{"id":1,"pId":0,"name":"name01","t":"t01"},{"id":2,"pId":1,"name":"name11","t":"t11"},{"id":3,"pId":2,"name":"name21","t":"t21"},{"id":4,"pId":3,"name":"name31","t":"t31"},{"id":5,"pId":4,"name":"name41","t":"t41"},{"id":6,"pId":5,"name":"name51","t":"t51"},{"id":7,"pId":6,"name":"name61","t":"t61"},{"id":8,"pId":7,"name":"name71","t":"t71"},{"id":9,"pId":8,"name":"name81","t":"t81"},{"id":10,"pId":9,"name":"name91","t":"t91"}]}
设置了id和pId则自动会处理父子关系的节点。在上一步中设置了key中的title为t,则表示t的值作为显示的内容。
如:public String getJson(){
HttpServletRequest request=ServletActionContext.getRequest();
HttpServletResponse response=ServletActionContext.getResponse();
response.setContentType("text/json;charset=utf-8");
response.setHeader("Cache-Control", "no-cache");
try {
PrintWriter out=response.getWriter();
String name=request.getParameter("name");
name=name+"--xcl";
JSONObject json=new JSONObject();
//json.element("rtn_value",name);
JSONArray jsonArray=new JSONArray();
for(int i=0;i<10;i++){
JSONObject json1=new JSONObject();
json1.element("id",i+1);
json1.element("pId",i);
json1.element("name","name"+i+1);
json1.element("t","t"+i+1);
jsonArray.add(json1);
}
json.element("rtn_result",jsonArray);
System.out.println(json.toString());
out.append(json.toString());
out.flush();
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
如:<link rel="stylesheet" type="text/css" href="public/css/zTreeStyle/zTreeStyle.css">
<link rel="stylesheet" type="text/css" href="public/css/icon.css">
</head>
<script type="text/javascript" src="public/js/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="public/js/jquery.ztree.core-3.0.min.js"></script>
<script type="text/javascript" src="public/js/json2.js"></script>
2 有一个id的ul标签,同时带有class
如:<ul id="tree" class="ztree" >
</ul>
3 js中进行设置,通过ajax返回数据。
如:function btn_b1_click(){
var name="xcl";
var url="login!getJson?name="+name;
jQuery.ajax({
url:url,
type:"post",
dataType:"json",
success:function getSuccess(data){
//alert(JSONdata);
//alert(JSON.stringify(data));
//alert(data.rtn_value);
rtn_value=data.rtn_result;
//alert(rtn_value);
$.fn.zTree.init($("#tree"),setting,rtn_value);//初始化过程
}
});
}
4 设置setting:
如:var treeObj,setting={
data:{
key:{
title:'t'
},
simpleData:{
enable:true
}
},
callback:{
onClick:onClick1
}
};
function onClick1(event,treeId,treeNode,clickFlag){
alert(treeNode.id);
}
5 后台java语句,必须是json格式的,要像:
{"rtn_result":[{"id":1,"pId":0,"name":"name01","t":"t01"},{"id":2,"pId":1,"name":"name11","t":"t11"},{"id":3,"pId":2,"name":"name21","t":"t21"},{"id":4,"pId":3,"name":"name31","t":"t31"},{"id":5,"pId":4,"name":"name41","t":"t41"},{"id":6,"pId":5,"name":"name51","t":"t51"},{"id":7,"pId":6,"name":"name61","t":"t61"},{"id":8,"pId":7,"name":"name71","t":"t71"},{"id":9,"pId":8,"name":"name81","t":"t81"},{"id":10,"pId":9,"name":"name91","t":"t91"}]}
设置了id和pId则自动会处理父子关系的节点。在上一步中设置了key中的title为t,则表示t的值作为显示的内容。
如:public String getJson(){
HttpServletRequest request=ServletActionContext.getRequest();
HttpServletResponse response=ServletActionContext.getResponse();
response.setContentType("text/json;charset=utf-8");
response.setHeader("Cache-Control", "no-cache");
try {
PrintWriter out=response.getWriter();
String name=request.getParameter("name");
name=name+"--xcl";
JSONObject json=new JSONObject();
//json.element("rtn_value",name);
JSONArray jsonArray=new JSONArray();
for(int i=0;i<10;i++){
JSONObject json1=new JSONObject();
json1.element("id",i+1);
json1.element("pId",i);
json1.element("name","name"+i+1);
json1.element("t","t"+i+1);
jsonArray.add(json1);
}
json.element("rtn_result",jsonArray);
System.out.println(json.toString());
out.append(json.toString());
out.flush();
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}