zoukankan      html  css  js  c++  java
  • JSP + JavaScript 实现类似 MSDN CSDN 导航树效果!

    测试站点:
    http://www.triaton.com.cn:1080/examples/tree/tree.jsp

    类似 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'>
            &nbsp;&nbsp;正在加载 ...
       </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 + "&nbsp;&nbsp;";
    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 + "&nbsp;&nbsp;正在加载 ...</div>";
     %>
     <% i++;
        }%>
    <BODY>
    <script>
       var x = eval('parent.' + '<%= ParentNode + "_0"%>' ) ;
       x.innerHTML="<%= sHTML %>";
    </script>
    </BODY>
    </HTML>

  • 相关阅读:
    【洛谷 1536】村村通
    【洛谷 1551】亲戚
    【UOJ 300】感冒病毒
    【洛谷 2299】Mzc和体委的争夺战
    【洛谷 3371】模板_单源最短路径(弱化版)
    【洛谷 2910】寻宝之路
    【洛谷 1359】租用游艇
    【UOJ 275】最短路径问题
    【UOJ 38】 股票经济人通信网络
    【UOJ 276】无向图最小环
  • 原文地址:https://www.cnblogs.com/Microshaoft/p/2485785.html
Copyright © 2011-2022 走看看