类似 MSDN CSDN 导航树效果,JSP + JavaScript 实现!
<!-- Tree.jsp --> <%@ page contentType ="text/html;charset=gb2312" %> <%@ page import="java.util.*;" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> New Document </TITLE> <META NAME="Generator" CONTENT="EditPlus"> <META NAME="Author" CONTENT=""> <META NAME="Keywords" CONTENT=""> <META NAME="Description" CONTENT=""> </HEAD> <BODY> <iframe width="100%" height="100" id="hiddenframe"></iframe> <script> function ExpandNode(ParentNode,ParentId){ var NodeX = eval(ParentNode.id + '_0'); if (NodeX.style.display == 'none') { NodeX.style.display="block"; if (NodeX.loaded == 'no') { document.frames['hiddenframe'].location.replace("subtree.jsp?PID=" + ParentId + "&PNode=" + ParentNode.id); NodeX.loaded = 'yes'; } } else { NodeX.style.display='none'; } } </script> <CENTER> <TABLE border="1" width="20%" height="60%"> <TR> <TD> <DIV style="OVERFLOW: auto;WIDTH: 100%;HEIGHT: 100%"> <TABLE width="300%"> <TR> <TD> <% java.lang.Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // java.sql.Connection ConnectionX = java.sql.DriverManager.getConnection("jdbc:ODBC:driver={Microsoft Access Driver (*.mdb)};DBQ=D:\\Resin\\doc\\examples\\Tree\\tree.mdb","admin", ""); // java.sql.Statement StatementX = ConnectionX.createStatement(); java.sql.ResultSet ResultSetX = java.sql.DriverManager.getConnection("jdbc:ODBC:driver={Microsoft Access Driver (*.mdb)};DBQ=e:\\resin-2.1.6\\doc\\examples\\Tree\\tree.mdb","admin", "").createStatement().executeQuery("select *,(select count(*) from tree where parentid = T.id) as children from tree T where parentid = 0"); int i=0; int children; int ID; while (ResultSetX.next()) { children=ResultSetX.getInt("children"); ID=ResultSetX.getInt("id"); %> <div id='Node_<%= i %>'><a href='#' <% if (children >0) {%> onClick='ExpandNode(Node_<%= i %>,<%=ID %>)'>+</a> <%;} else {%> >-</a><%;}%> <a href='#' <% if (children >0) {%> onDblClick='ExpandNode(Node_<%= i %>,<%=ID%>)' <%} %> > <%=ResultSetX.getString("remark")%></a> </div> <div id='Node_<%= i %>_0' style='display: none' loaded='no'> 正在加载 ... </div> <% i++; } %> </BODY> </HTML>
<!-- SubTree.jsp --> <%@ page contentType ="text/html;charset=gb2312" %> <%@ page import="java.util.*;" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> New Document </TITLE> <META NAME="Generator" CONTENT="EditPlus"> <META NAME="Author" CONTENT=""> <META NAME="Keywords" CONTENT=""> <META NAME="Description" CONTENT=""> </HEAD> <% String ParentNode = request.getParameter("PNode"); int i; int j; String nSpace=""; j= ParentNode.length()- ParentNode.replaceAll("_","").length(); for (i=0;i<j;i++) nSpace = nSpace + " "; String sHTML =""; i=0;
java.lang.Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // java.sql.Connection ConnectionX = java.sql.DriverManager.getConnection("jdbc:ODBC:driver={Microsoft Access Driver (*.mdb)};DBQ=D:\\Resin\\doc\\examples\\Tree\\tree.mdb","admin", ""); // java.sql.Statement StatementX = ConnectionX.createStatement(); java.sql.ResultSet ResultSetX = java.sql.DriverManager.getConnection("jdbc:ODBC:driver={Microsoft Access Driver (*.mdb)};DBQ=e:\\resin-2.1.6\\doc\\examples\\Tree\\tree.mdb","admin", "").createStatement().executeQuery("select *,(select count(*) from tree where parentid =T.id ) as Children from tree T where parentid = " + request.getParameter("PID")); int children; int ID; while (ResultSetX.next()) { children=ResultSetX.getInt("children"); ID=ResultSetX.getInt("id"); sHTML = sHTML + "<div id='" + ParentNode + "_" + (i + 1) + "'>" + nSpace + "<a href='#'"; if (children >0) sHTML = sHTML + " onClick='ExpandNode(" + ParentNode + "_" + (i + 1) + "," + ID + ")'>+"; else sHTML = sHTML + ">-"; sHTML = sHTML + "</a>\\n" + "<a href='#'"; if (children >0) sHTML = sHTML + " onDblClick='ExpandNode(" + ParentNode + "_" + (i + 1) + "," + ID + ")'"; sHTML = sHTML + ">" + ID + ": " + ResultSetX.getString("remark") + "</a></div>"; if (children >0) sHTML = sHTML + "<div id='" + ParentNode + "_" + (i + 1) + "_0' style='display: none' loaded='no'>" + nSpace + " 正在加载 ...</div>"; %> <% i++; }%> <BODY> <script> var x = eval('parent.' + '<%= ParentNode + "_0"%>' ) ; x.innerHTML="<%= sHTML %>"; </script> </BODY> </HTML>
bill-转自:csdn
|