刚刚使用JQUERY,很多东西不懂,这里有一个树状的展示,但是出不了结果,麻烦大家给看下,代码如下页面HTML,通过
<script>
showTree('id','chanpin') ;
</script>
调用showTree方法,方法如下:function showTree(jid,method)
{
var treeData;
$.ajax({
url: 'server.jsp?method='+method,
type: 'GET',
dataType: 'json',
timeout: 1000,
error: function(){
alert('Error loading XML document');
},
success: function(xml){
alert(xml) ;
// treeData=xml;
}
});
$("input#"+jid).popup(
$("#tree").dynatree({
checkbox: true,
selectMode: 3,
children: treeData,
onSelect: function(select, dtnode) {
// Get a list of all selected nodes, and convert to a key array:
var selKeys = $.map(dtnode.tree.getSelectedNodes(), function(node){
return node.data.key;
});
//$("#qy").text(selKeys.join(", ")); // Get a list of all selected TOP nodes
var selRootNodes = dtnode.tree.getSelectedNodes(true);
// ... and convert to a key array:
var selRootKeys = $.map(selRootNodes, function(node){
return node.data.key;
});
$("#"+jid).attr("value",selKeys.join(","));
//$("#qy").attr("value",selRootNodes.join(", "));
},
onDblClick: function(dtnode, event) {
dtnode.toggleSelect();
},
onKeydown: function(dtnode, event) {
if( event.which == 32 ) {
dtnode.toggleSelect();
return false;
}
}
// The following options are only required, if we have more than one tree on one page:
// initId: "treeData",
//cookieId: "ui-dynatree-Cb3",
//idPrefix: "ui-dynatree-Cb3-"
}));}以下是server.jsp的写法,<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ page import="com.wave6.*"%>
<%@ page import="com.util.*"%>
<%
String paraString = Format.URLdecode(request.getParameter("method")) ;
if (paraString.equals("chanpin"))
{
out.println(TreeSelectUtil.getProductTree());
}
%>然后getProductTree方法为:package com.util;import java.util.Iterator;
import java.util.List;
import java.util.Map;import org.springframework.jdbc.core.JdbcTemplate;import com.wave6.JSONObject;
import com.wave6.JSONArray;
public class TreeSelectUtil {
public static JSONArray getProductTree() throws Exception
{
String sql = "select id id ,FLOWNAME name ,'' parent_id from flow union select TACHEID id,TACHENAME name,flowid parent_id from tache " ;
JdbcTemplate jt = DbUtil.getJdbcTemplet() ;
List queryResultList = jt.queryForList(sql) ;
JSONArray result = JSONUtil.getJSAByList(queryResultList);
return result ;
}
}这个方法返回的json格式我输出,给大家看下,
[
{"cell":{"ID":"1","NAME":"q","PARENT_ID":null},"ID":"1"},
{"cell":{"ID":"11","NAME":"ee","PARENT_ID":"1"},"ID":"11"},
{"cell":{"ID":"2","NAME":"w","PARENT_ID":null},"ID":"2"},
{"cell":{"ID":"22","NAME":"er","PARENT_ID":"2"},"ID":"22"},
{"cell":{"ID":"3","NAME":"e","PARENT_ID":null},"ID":"3"},
{"cell":{"ID":"33","NAME":"wqe","PARENT_ID":"3"},"ID":"33"},
{"cell":{"ID":"4","NAME":"qwe","PARENT_ID":null},"ID":"4"},
{"cell":{"ID":"44","NAME":"23","PARENT_ID":"1"},"ID":"44"},
{"cell":{"ID":"55","NAME":"wre","PARENT_ID":"1"},"ID":"55"}
]目的是想得到一个树状结构,PARENT_ID为空,则表示该ID没有子目录,麻烦大家帮忙看下,这么写的目的是以后方便复用,以后代入参数就可以自己调用什么方法,不需要写很多这个啦。
<script>
showTree('id','chanpin') ;
</script>
调用showTree方法,方法如下:function showTree(jid,method)
{
var treeData;
$.ajax({
url: 'server.jsp?method='+method,
type: 'GET',
dataType: 'json',
timeout: 1000,
error: function(){
alert('Error loading XML document');
},
success: function(xml){
alert(xml) ;
// treeData=xml;
}
});
$("input#"+jid).popup(
$("#tree").dynatree({
checkbox: true,
selectMode: 3,
children: treeData,
onSelect: function(select, dtnode) {
// Get a list of all selected nodes, and convert to a key array:
var selKeys = $.map(dtnode.tree.getSelectedNodes(), function(node){
return node.data.key;
});
//$("#qy").text(selKeys.join(", ")); // Get a list of all selected TOP nodes
var selRootNodes = dtnode.tree.getSelectedNodes(true);
// ... and convert to a key array:
var selRootKeys = $.map(selRootNodes, function(node){
return node.data.key;
});
$("#"+jid).attr("value",selKeys.join(","));
//$("#qy").attr("value",selRootNodes.join(", "));
},
onDblClick: function(dtnode, event) {
dtnode.toggleSelect();
},
onKeydown: function(dtnode, event) {
if( event.which == 32 ) {
dtnode.toggleSelect();
return false;
}
}
// The following options are only required, if we have more than one tree on one page:
// initId: "treeData",
//cookieId: "ui-dynatree-Cb3",
//idPrefix: "ui-dynatree-Cb3-"
}));}以下是server.jsp的写法,<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ page import="com.wave6.*"%>
<%@ page import="com.util.*"%>
<%
String paraString = Format.URLdecode(request.getParameter("method")) ;
if (paraString.equals("chanpin"))
{
out.println(TreeSelectUtil.getProductTree());
}
%>然后getProductTree方法为:package com.util;import java.util.Iterator;
import java.util.List;
import java.util.Map;import org.springframework.jdbc.core.JdbcTemplate;import com.wave6.JSONObject;
import com.wave6.JSONArray;
public class TreeSelectUtil {
public static JSONArray getProductTree() throws Exception
{
String sql = "select id id ,FLOWNAME name ,'' parent_id from flow union select TACHEID id,TACHENAME name,flowid parent_id from tache " ;
JdbcTemplate jt = DbUtil.getJdbcTemplet() ;
List queryResultList = jt.queryForList(sql) ;
JSONArray result = JSONUtil.getJSAByList(queryResultList);
return result ;
}
}这个方法返回的json格式我输出,给大家看下,
[
{"cell":{"ID":"1","NAME":"q","PARENT_ID":null},"ID":"1"},
{"cell":{"ID":"11","NAME":"ee","PARENT_ID":"1"},"ID":"11"},
{"cell":{"ID":"2","NAME":"w","PARENT_ID":null},"ID":"2"},
{"cell":{"ID":"22","NAME":"er","PARENT_ID":"2"},"ID":"22"},
{"cell":{"ID":"3","NAME":"e","PARENT_ID":null},"ID":"3"},
{"cell":{"ID":"33","NAME":"wqe","PARENT_ID":"3"},"ID":"33"},
{"cell":{"ID":"4","NAME":"qwe","PARENT_ID":null},"ID":"4"},
{"cell":{"ID":"44","NAME":"23","PARENT_ID":"1"},"ID":"44"},
{"cell":{"ID":"55","NAME":"wre","PARENT_ID":"1"},"ID":"55"}
]目的是想得到一个树状结构,PARENT_ID为空,则表示该ID没有子目录,麻烦大家帮忙看下,这么写的目的是以后方便复用,以后代入参数就可以自己调用什么方法,不需要写很多这个啦。
<%@ page import="com.wave6.*"%>
<%@ page import="com.util.*"%>
<%
String paraString = Format.URLdecode(request.getParameter("method")) ;
if (paraString.equals("chanpin"))
{
out.println(TreeSelectUtil.getProductTree());
}
%>是在这个JSP里返回的,out.println啊