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>

  • 相关阅读:
    sabaki and leelazero
    apply current folder view to all folders
    string operation in powershell
    wirte function in powershell
    add environment path to powershell
    Module in powershell
    sql prompt
    vmware中鼠标在部分区域不能使用
    调整多个控件的dock的顺序
    行为型模型 策略模式
  • 原文地址:https://www.cnblogs.com/Microshaoft/p/2485785.html
Copyright © 2011-2022 走看看