JSP+JAVASCRIPT实现类似MSDN CSDN导航树效果
类别: JSP教程
<!-- 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>
<%@ 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>
- 上一篇: 解决JSP中文显示问题的几个方法
- 下一篇: STRUTS下JSP页面传递复选框值技巧
-= 资 源 教 程 =-
文 章 搜 索